OpenLayers対Googleマップ?[閉まっている]


169

私は数回Googleマップを使用しましたが、OpenLayersについて何が不思議に思っています。
あらゆる種類のコーディングを開始する前に、私の頭に浮かぶいくつかの質問があります。

  • Googleマップの代わりにOpenLayersを使用するのはなぜですか?
    • とにかく、そのOSSライセンスを除いて
    • OpenLayersを絶対に使用しないことをお勧めする状況に遭遇しましたか?
    • Stack Overflowで「OpenLayers」について検索しました。答えは多くありません。このソリューションはあまり使用されていないということですか?プロジェクトの長期的な実行可能性に問題があるのでしょうか?
  • すでにOpenLayersを使用したことがある人のために:私が遭遇する可能性のある一般的な落とし穴/問題はありますか?
    • それでJavaScriptフレームワークを使用するのはどうですか?Prototypeを使用しているのを見たことがありますが、Prototypeは知っているので問題ありません。しかし、MooToolsのような他のものを使用するのはどうですか?(これはプロトタイプ、BTWと互換性がありません)
    • 速度やパフォーマンスに関連する問題はありますか?アプリケーションの応答性が必要で、マップが表示されるまで何時間も待つことができません。
  • 多くの場所で利用できる地図はありますか、それとも不足しているものはたくさんありますか?
    • つまり、私はフランスにいるので、少なくとも大都市でアプリケーションを動作させる必要があります...それでいいですか?
    • そうでない場合、OpenLayersのレイヤーと視覚化を見つけて統合するのは簡単ですか?
  • 道路を表示するためのAPIはありますか?
    • たとえば、一方通行の道路のみを表示します。
    • はいの場合、どうすればよいですか?これらの道路情報を含むファイルを用意し、自分で地図に表示する必要がありますか?
  • OpenLayersの優れたチュートリアルを知っていますか?

私はまだそれを試していません、それらは突然の質問から外れています...


好奇心から、哲学上の理由を除いて、なぜ「OSSライセンス」がOpenLayersを支持するポイントになるのでしょうか?グーグルのライセンスがあなたがあなたが自由にしたいことをすることを許すと仮定すると、なぜそれはあなたの決定をどちらの方向にも左右するのですか?
マーク

7
@Mark Googleのライセンスに問題があります。IANALですが、Googleマップにデータを表示すると、データをコピー、変更、変換、再配布する無制限のライセンスがGoogleに与えられることを理解しています。たとえば、英国のOrdnance Survey GIS製品から派生したデータをGoogleマップに表示することは違法です。OSSのもう1つの利点は、OpenLayersが1つの組織の気まぐれの影響を受けないことです。実際には、Googleの良識(およびお金、ビジネス上の理由)を信頼して、将来
にわたって

1
これらの記事は役立つかもしれません:EveryBlock-マップについて:blog.everyblock.com/2008/feb/18/maps A List Apart-マップを制御する(これもEveryBlockから)alistapart.com/articles/takecontrolofyourmaps
mg1075

8
Googleマップは完全に無料ではありません(google.com/support/forum/p/maps/…)。ライセンスは、使用方法によって異なります。
Mo.

SOで答えが見つからない場合は、GIS.SEサイトですべての地理情報を確認することをお勧めします。
ロイ

回答:


158

これらは本当に素晴らしい質問です!私はOpenLayersのプロの開発者でありファンですので、その観点から質問にお答えします。

Googleマップの代わりにOpenLayersを使用するのはなぜですか?

  • 柔軟性:特定のマッププロバイダーやテクノロジーに縛られることはありません。いつでも変更でき、コード全体を書き直す必要はありません。Google、Yahoo、Microsoft、WMS、ArcGIS Server、MapServerなどはすべてそのままでサポートされています。
  • ベクトルのサポート:ポイント、ポリライン、ポリゴンのサポートが改善されました。
  • コントロール:必要な新機能を追加することができます。私はOpenLayers用に3つのプラグインを個人的に作成しました。そのうちの2つはソースの一部であるか、ソースの一部になります。
  • デバッグ:ソースコードをステップ実行できると、デバッグがはるかに簡単になります。

プロジェクトの長期的な実行可能性についてはまったく心配していません。これは、最高のオープンソースクライアント側マッピングライブラリです。

私が遭遇する可能性のある一般的な落とし穴/問題はありますか?

  • 私が遭遇した最大の落とし穴は、Webメルカトル(Google)プロジェクションでの作業です。WGS 84のような一般的で実際の投影法であるベクターデータを、Google、Yahoo、およびMicrosoftのベースマップを使用してOpenLayersマップに表示するのは簡単ではありません。例はあなたの友達です。

JavaScriptフレームワークの互換性

  • 私はすべての作業にjQueryフレームワークを使用しており、私が抱えていた唯一の問題は、OpenLayersの後でjQueryを参照することです。それ以外は、順風満帆です。
  • パフォーマンスは素晴らしいです!唯一の問題は、マップサーバー、またはマップに追加するベクトルが多すぎることです。

多くの場所で利用できる地図はありますか?

  • 先ほど言ったように、ベースマップは世界中のどこにでも、ほぼすべてのソースから使用できます。

道路を表示するためのAPIはありますか?

  • CloudMadeをチェックします。はOpenStreetMapプロジェクトをマップタイルサービスに変換し、カスタムスタイルを許可しています。私はあなたが一方通行の通りを(あなたの例に従って)特定の方法でスタイルすることができると信じています。CloudMade開発者ゾーン

OpenLayersの優れたチュートリアルを知っていますか?

これがお役に立てば幸いです。質問がある場合は、スタックオーバーフローの周りにいます!


5
こんにちは!この答えを本当にありがとう、それは本当に便利です!確かにいくつかの興味深い点があります(私が考えているプロジェクトには、より優れたベクトルサポートがおそらく役立つでしょう。興味深いのは、それだけではありません!); 多分私はいつか他のいくつかの質問をするでしょう:私はまだOLでの作業を開始していません(この質問はかなり「準備」の質問でした^^)が、私が得た答えを考慮して、時間が来るでしょう。
パスカルマルタン

5
+1。私はこのコメントを入力しないように努めましたが、私は自分自身を助けることはできません。WGS84は予測ではありません。(このことを学ぶのは価値があります。私は少しGISを
苦労し

1
WGS84は地理座標系です(楕円上に緯度/経度のポイントを表示するために使用されます)。Webメルカトルは事実上、事実上のWebプロジェクションです。
ロイ、

35

これは必ずしもOpenLayersまたはGoogleマップの問題ではありません。結局、OpenLayersでマップの背景にGoogleマップを使用できます。より具体的な回答:

OpenLayersを選ぶ理由

  • OpenLayersは、さまざまなソースからのマップを組み合わせることができます(Googleマップの背景、WMSオーバーレイ、KMLまたはGMLファイルまたはWFSなどからのベクトルデータ)
  • Googleマップよりもはるかに多くのOpenLayersをスタイリングできます
  • オープンソース、デバッグ時にソースコードを確認できます
  • マップで高精度が必要な場合は、Googleマップではなく、適切なマップサーバーバックエンドでOpenLayersを使用して、より適切なマップ投影を取得します(Googleマップは地球が完全な球であると想定しています)

落とし穴

  • 別のサーバーからのベクター(WFS)データを使用する場合は、クロスサイトスクリプティングの制限により、プロキシが必要です。

パフォーマンス

  • 主にマップバックエンドの速度に依存
  • 多くのベクター機能の表示(制限はブラウザーに依存しますが、1つのビューで200を超えると表示されます)には時間がかかりますが、それはOpenLayersの問題よりもブラウザーの方が重要です。

JavaScriptフレームワーク

利用可能なマップ

  • OpenLayersにはマップバックエンドが付属していません。Googleマップ、Yahooマップ、MS Virtual Earthなど、またはWMSおよびWFSサービスを使用して、

いい答えです。これらすべての情報に感謝します!詳細はまだわかりませんが、自分のサーバーのデータを使用する必要がある可能性があるため、特に複数のバックエンドを統合する機能があれば、すべてが問題ないはずです(正しく理解できれば、^^テストする機会があります数日のうちに、私は願っています;
Pascal MARTIN

1
@Pascal、答えが役に立てて嬉しいです。OpenLayersコミュニティは非常に活発で、メーリングリストは非常に役に立ちます。
Nils Weinander 09

あなたがしたいことが開発例のページでカバーされていない何かがある場合は、おそらくGoogleマップでそれを行うことはできません。たとえば、クロスサイトスクリプティングでさえプロキシでカバーする必要はありません:openlayers.org/dev/examples/cross-origin.html
Glenn Plas

23

私はOpenLayersユーザーからのプレゼンスをSOであまり見ていませんが、彼らはそこにいます。メーリングリストOpenLayersをはかなりアクティブになっている(私は上だユーザーデベロッパーとどこでも50-100電子メールいろいろなことを議論した日から参照してください。あなたも、これらのリンクからリストを検索することができます。)。

すべての質問にお答えすることはできませんが、OpenLayersとGoogleマップは相互に排他的ではないということを1つ挙げておきます。OpenLayersはJavaScriptライブラリであり、これを使用してGoogleマップを操作できます。この例を確認してください:Googleマップを使用したOpenLayersOpenLayersのメインのサンプルページは次のとおりです


その答えをありがとう!プロジェクトの作業を開始する前に、メーリングリストが非常にアクティブになっているのを見るのは良いことです^^
Pascal MARTIN '06

13

ここで十分に説明されていない点の1つは、OpenLayersを使用することで、GoogleがマップAPIの利用規約に課したさまざまな制限を回避できることです。

  • アクセスに支払いが必要なサイトのセクションや、一般のユーザーがサインアップできないプライベートサイト(企業のイントラネットなど)に対してのみ、Googleマップを合法的に使用することはできません。(IANAL、ただし利用規約、9.1およびFAQを参照

  • オフラインアプリケーション(つまり、自分のマシンからタイルが提供される場所)にGoogle APIを合法的に(または実際的に)使用することはできません。法的規制がなかったとしても、Googleはこれを技術的に非常に難しくしていますが、OpenLayersはそれを簡単にします。

  • Googleは、好ましくないと思われるコンテンツを含む地図を表示している場合、APIへのアクセスをシャットダウンする権利を留保します。FAQに示されている例は、違法薬物のマップです。これにより、この制限が適用される可能性のある灰色の領域がよくわかります。

詳細については、このFAQ利用規約をご覧ください。

そうは言っても、最近OpenLayersを使い始めた長年のGoogle Maps開発者として、Google MapsはOpenLayersよりも優れたドキュメント、より大きなユーザーコミュニティ、より明確で安定したAPIを備えていると感じています。したがって、どこかでトレードオフをする必要があります。


「アクセスに支払いが必要なサイトのセクションや、一般に登録できないプライベートサイト(企業のイントラネットなど)では、Googleマップを合法的に使用することはできません。」不正解です。ほとんどのユーザーがサイトや地図を無料で利用できる限り、サイトの有料セクションでGoogleマップを使用できます。例:不動産Webサイト。ポスターは家をリストするために支払う必要がありますが、大多数のユーザーは支払うことなくサイトを閲覧できます。この場合、どちらもGoogleマップにアクセスできます。
Craig

ありがとうございます。お支払いが必要なセクションでのみ APIを使用することはできません。投稿を更新し、この問題に対処するためのリンクをさらに追加しました。
nrabinowitz、2011年

OpenLayersはGoogle Maps APIを内部で使用しているため、同じライセンスが適用されます。osgeo-org.1560.x6.nabble.com/…–
Alfredo Osorio

@AlfredoOsorio-はい、IFFはGoogleレイヤーを使用します。他のタイルソースはたくさんあります。
nrabinowitz 14年

12

これは、マップを何に使用するかによって異なります。地図上に単純に点をプロットするには、Googleマップで問題ありません。Googleマップのマップレイヤーも非常に詳細です。一方、OpenLayersははるかに多くの機能を提供し、非常に拡張可能です。

OpenLayersには、始めるための多くの例があります。

マップについては、OpenLayersは単なるAPIなので、マップレイヤーを提供する必要があります。Google Maps APIは、Googleが提供するマップレイヤーに限定されます。OpenLayerを使用すると、公開されているほとんどのマップサービス(WMS、WFS、TMS、WMS-C)を表示できます。非常に良い例がopenstreetmap.org-(コミュニティによって収集された世界的な道路地図)です。OSMはTMSレイヤーとしてopenlayersに追加できます。手順については、このを確認してください。


こんにちは!「私は」の最初の答えがここにあるようです!ようこそ!そして、あなたの答えに感謝します:-)
Pascal MARTIN '06

9

一部のクライアントは、Googleマップの使用を拒否するか、強く予約することがあります。彼らは、Googleが予告なしに広告を導入したり、APIを変更したりする可能性があるという正当な懸念を抱く場合があります。ただし、Googleマップには他のGoogleサービス(目印、写真の追加、ジオコーディングサービス)と統合できるという利点があります。そのWebとして、常に多くの異なるマッピングサービスとAPIを組み合わせることができます。


1
+1。そのようなクライアントがいます。そして、私は彼らが間違っていると言っているのではありません。前回調べたところ、Googleマップのライセンス条件により、Googleはいつでも地図に広告を掲載することができます。
MarkJ 2010年

2
また、GoogleMapsを使用することにより、コンテンツを複製、改変、変更するための永続的で取り消し不能なロイヤルティフリーの全世界的なライセンスをGoogleに付与します。
MarkJ、2010年

9

私はすべての答えに同意しますが、誰も言及しない非常に重要なポイントが1つあります。OpenLayersとGoogleマップのターゲットは異なります。

OpenLayerは地理データを表示するための優れたフレームワークですが、Googleマップは他のサービスの中で地理データを表示するためのフレームワークを含むサービスのプールです。

したがって、GoogleマップはOpenLayesにはない多くのサービスと機能を公開しています。Googleマップの機能とサービスの例としては、地域のローカリゼーション、センサー検出(GPS搭載デバイスの場合)、ユーザーのローカリゼーション、ジオコーディングとリバースジオコーディング、ストリートビューなどがあります。


6

私は両方のAPIを使用しました。私は企業向けのソフトウェアを作成していますが、このソフトウェアにはマッピングが必要ですが、すべてのクライアントがGoogleMapsライセンスを持っているわけではないため、両方のタイプのマップをサポートする必要があります。

それらの違いを抽象化するために共通のAPIを作成しましたが、いくつかのことは一方の方が簡単に実行できるものがあります。マップをパンできる場所の境界を制限するように、OpenLayersで行う方がはるかに簡単ですが、ヒートマップはGoogleMapsで使用する方が簡単です(利用可能なOpenLayersプラグインとは異なり、Googleで公式にサポートされています)。

  1. OpenLayersはオフラインマップをサポートしています。一部のユーザーは、インターネットに接続していないプライベートイントラネットを使用しています。

  2. GoogleMapsには2つのプラグインが絶対に必要です。MarkClusterSpiderfierは、膨大な数のマーカーを視覚化できるようにします。

  3. GoogleMaps InfoWindowsは、OpenLayers.Popupsより使いやすく、使いやすさが向上しています。これらは、マーカーをクリックしたときに開くことができる小さなウィンドウです。Googlemaps InfoWindowsもデフォルトでかなりきれいになり、ポップアップでいくつかのCSSウィザードを実行する必要があります。

  4. GoogleMapsには時々役立つストリートビューがあります。

  5. GoogleMapsはあなたが必要とするかもしれないより多くの機能を備えています。OpenLayersにも多くの機能がありますが、正式にはサポートされていません。

通常、最終的にはOpenLayersを使用する必要があります。これは、googlemapsのライセンスや帯域幅の使用により頭痛が軽減されるためです。どちらも基本的なマッピング(つまり、マップの上にマーカーを表示する)を非常にうまく処理します。必要な特定の機能が見つからない場合を除き、OpenLayersを使用してください。googlemapsの課金の詳細と無料で使用できる時期については、こちらをご覧ください。

また、GoogleMapsの基本的な地理位置情報タイプは「LatLng」で、Openlayersは「LonLat」を使用しています。これは、関数呼び出しのパラメーターの順序を間違えているため、おかしなことになります。


3

速度の問題に言及した人に加えて、IEのVMLレンダラーは多くの機能を持つベクターレイヤーで本当に遅くなる可能性があることを付け加えたいと思います。1人のユーザーが約200について言及しました。これは、IEがフリーズするまでかなり遅くなる前に追加できるものです。テキストラベルである機能を追加する場合、おそらくそれぞれのテキストラベルが2つのVML要素で構成されているために、半分以下を追加できます。

Googleでは、IEで問題なくレンダリングされる「div」のコンテンツを持つカスタムGOverlayを作成できます。


3

クライアントの使用法とデータ開発という2つの観点から、追加したいことを2つ挙げます。

クライアントの使用:

  • 現在、クライアントは何を使用していますか?変更は難しい場合があります。
  • どのくらいの機能が本当に必要ですか?OpenLayersにはかなりの数がありますが、使用していない場合は...

データ提供:

  • KMLデータを提供していますか?その場合、OpenLayersとGoogleマップの両方がこれで動作し、おそらくクライアントの使用状況に基づいて決定する必要があります。

  • 他の種類のデータサービスを提供していますか?(WMS、WFS、CSVなど)その場合、OpenLayersには例とサポートがあります。


2

OLには大規模なファンベースがあり、おそらく世界で最も使用されているオープンソースのジオシングです。

OLが支柱のようなものではなく、JSFやモバイル(非ジオ)などの他の種類の技術について議論する傾向があるため、このサイバープレイスでそれに関する多くのスレッドや投稿が表示されることはありません。

ただし、Olにはいくつかの欠点があります。主に低レベルであるため、一般的な操作を行うには多くのコードを記述する必要があります。開発者としては、a:すべてのコードを事前に用意し、b:調整とカスタマイズは非常に簡単なので、これもうまく機能します。

より洗練された無料のジオツールがありますが、それらが行うのは、openlayersを呼び出して、より退屈な雑用のいくつかを抽象化することです。

自信を持って使用してください。それは成熟していて、堅牢で、予見可能な将来に死ぬことはありません。ただし、開発プロセスをスピードアップしたい場合は、その上にマウントする他のツールを試してください。

ごきげんよう


こんにちは、OpenLayersの上にある「より洗練された無料のジオツール」について詳しく教えてください。GeoExtについては前述しましたが、まだ指定されているものはありませんでした。ありがとう。
Brian B

@BrianBこんにちは、「もっと洗練された無料のジオツール」を書いたとき、私はまさにgeoextについて考えていました。そのライブラリーはEXTJSとopenlayersを統合します。
demonz demonz 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.