171

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

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

私はまだそれを試していません。

4

11 に答える 11

159

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

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

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

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

よくある落とし穴や問題はありますか?

  • 私が遭遇した最大の落とし穴は、Web メルカトル (Google) 投影を使用することです。Google、Yahoo、および Microsoft のベース マップを使用して、WGS 84のような一般的で実際の投影法にあるベクター データをOpenLayers マップに表示するのは面倒な場合があります。例はあなたの友達です。

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

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

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

  • 前述したように、世界中のあらゆるソースのベースマップを使用できます。

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

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

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

これが役に立つことを願っています。ご不明な点がございましたら、Stack Overflow までお問い合わせください。

于 2009-08-13T15:53:45.443 に答える
23

SO での OpenLayers ユーザーの存在はあまり見たことがありませんが、彼らはそこにいます。OpenLayersのメーリング リストは非常に活発です (私はUsers and Devに参加しており、1 日に 50 ~ 100 通の電子メールでさまざまなことについて話し合っているのを見ています。これらのリンクからリストを検索することもできます)。

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

于 2009-08-06T06:17:43.767 に答える
13

それは本当にあなたがマップを何のために使いたいかによります。地図上にポイントをプロットするだけなら、Googleマップで十分です。Googleマップのマップレイヤーも非常に詳細です。一方、OpenLayersははるかに多くの機能を提供し、非常に拡張性があります。

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

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

于 2009-08-06T12:22:52.033 に答える
13

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

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

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

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

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

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

于 2011-02-08T06:45:05.653 に答える
10

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

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

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

于 2010-08-28T12:04:46.950 に答える
9

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

于 2009-09-26T17:44:55.907 に答える
6

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

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

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

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

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

  4. GoogleMapsにはストリートビューがあり、時々便利です。

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

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

また、GoogleMaps には「LatLng」という基本的なジオロケーション タイプがあり、Openlayers は「LonLat」を使用します。これは、関数呼び出しでパラメーターの順序を間違え続けているため、私をおかしくさせます。

于 2014-01-31T20:30:36.350 に答える
3

速度の問題について言及した人に加えて、IEのVMLレンダラーは、多くの機能を備えたベクトルレイヤーを使用すると非常に遅くなる可能性があることを付け加えたいと思います。あるユーザーは約200について言及しました。これは、IEがフリーズするまでかなり遅くなる前に、まさに私が追加できることです。テキストラベルである機能を追加する場合、おそらく内部的に各テキストラベルが2つのVML要素で構成されているため、追加量を半分に減らすことができます。

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

于 2011-08-01T11:19:27.707 に答える
3

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

クライアントの使用法:

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

データ提供:

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

  • 他の種類のデータ サービスを提供していますか? (WMS、WFS、CSV など) もしそうなら、OpenLayers には例とサポートがある可能性が非常に高いです。

于 2010-02-05T17:56:54.273 に答える