web-dev-qa-db-ja.com

OpenLayers対Googleマップ?

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

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

私はまだ試していません、それらはただの青い質問です...

170
Pascal MARTIN

これらは本当に素晴らしい質問です!私は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の良いチュートリアルを知っていますか?

  • チュートリアルは知りませんが、OpenLayers Examplesにはたくさんの例があります

これが役に立つことを願っています。また、質問がある場合はStack Overflowを使用しています。

159
atogle

OpenLayers OR Google Mapsの質問ではありません。OpenLayersの地図の背景にGoogle Mapsを使用することができます。

なぜOpenLayersなのか?

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

落とし穴

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

パフォーマンス

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

JavaScriptフレームワーク

  • GeoExt をご覧ください。たとえば、ExtJS + OpenLayersです。

利用可能なマップ

  • OpenLayersにはマップバックエンドが付属していません。 Google Maps、Yahoo Maps、MS Virtual Earthなどを使用できます。または、すべてのWMSおよびWFSサービスにアクセスできます。
36
Nils Weinander

SOのOpenLayersユーザーからの存在はあまり見ていませんが、彼らはそこにいます。 OpenLayersメーリングリスト はかなりアクティブです(私は- sers および Dev で、1日に50から100のメールでさまざまなことを議論しています。これらのリンクからリストを検索することもできます。

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

23
Derek Swingley

ここで完全に作成されていない点の1つは、OpenLayersを使用すると、GoogleがそのマップAPIの利用規約に課すさまざまな制限を回避できることです。

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

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

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

このFAQ および 利用規約 を参照してください。

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

13
nrabinowitz

それは本当にあなたがマップを使用したいものに依存します。地図上にポイントを簡単にプロットするには、Googleマップで十分です。 Googleマップのマップレイヤーも非常に詳細です。一方、OpenLayersははるかに多くの機能を提供し、非常に拡張可能です。

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

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

12
Andrew Dwyer

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

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

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

9
angelcervera

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

9
geographika

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

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

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

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

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

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

  5. GoogleMapsには、必要な機能が他にもあります。 OpenLayersにも多くの機能がありますが、公式にはサポートされていません。

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

また、GoogleMapsの基本的な位置情報タイプは「LatLng」であり、Openlayersは「LonLat」を使用しています。

6
Hoffmann

クライアントの使用状況とデータダービングという2つの観点から、2つ追加します。

クライアントの使用:

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

データ提供:

  • [〜#〜] kml [〜#〜] データを提供していますか?もしそうなら、OpenLayersとGoogle Mapsの両方がそれで動作し、おそらくクライアントの使用に基づいて決定する必要があるでしょう。

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

3
Ruz

速度の問題に言及した人たちに加えて、IEのVMLレンダラーは多くの機能を備えたベクターレイヤーで本当に遅くなる可能性があることを付け加えたいと思います。 1人のユーザーが約200に言及しました。それは、IEがフリーズするまでかなり遅くなります。内部的には、各テキストラベルは2つのVML要素で構成されます。

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

3
Jānis Elmeris

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

OLはストラットに似ているからではなく、JSFやモバイル(非地理)などの他の種類の技術について議論する傾向があるため、多くのスレッドとこのサイバープレースに関する投稿を見ることはありません。

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

より洗練された無料のジオツールがありますが、それらはすべて、オープンレイヤーを呼び出し、退屈な雑用の一部を抽象化するだけです。

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

ごきげんよう

2
demonz demonz