OpenLayersまたはLeafletを選択しますか?[閉まっている]


93

OpenLayers v / s Leafletの同僚の1人と議論していました。GeoserverとPostGISに直接接続する必要があるプロジェクトを構築する場合、OpenLayersははるかに優れたAPIであると指摘しました。

次に、Open Data Kitを見つけました。これはかなり新しく見えますが、GeoserverおよびPostGISとの接続機能を備えています。

私のプロジェクトの詳細は次のとおりです。

  1. マップインターフェイスを使用して、フィーチャ情報を取得します
  2. ユーザーが地図上でクリックした場所に関する緯度経度を取得し、ラスタから気候データを取得するカスタマイズされたツールを作成します(サーバー上のpyスクリプトによって処理されます)。
  3. ユーザーがExcelをアップロードできるようにします。Excelはpyスクリプトに送信され、GeoJSONが返され、マップ上にベクターフィーチャが作成されます
  4. ユーザーがベクターポリゴンを作成できるようにします。ベクターポリゴンは、交差するフィーチャをWFSレイヤーから取得します。
  5. GeoServer上のPostGISデータストアからレイヤーを取得し、マップ上にレイヤーを表示します。

だから今、私はどちらが優れているのか、そしてリーフレット上でOpenLayersを使用することがより理にかなっているのか混乱していますか?


1
プロジェクトに依存します。
CaptDragon

1
a。プロジェクトの詳細を入力して、質問を改善してください。b。ユーザーのデータベース(postgis)への直接接続について話しているのですか?
パブロ

そのことについて申し訳ありませんが、私のプロジェクトの詳細を更新
Sam007


一般的に、私はLeafletを好みます。なぜなら、それは短くて読みやすい.jsファイルにつながる傾向があるからです。しかし、あなたはより深くより詳細なアクセスが許可されているため、OLはLeafletができないことを行うことができます-だから、私は同意します。プロジェクトによって異なりますが、私からのリーフレットへの1票。
MartinHvidberg

回答:


87

アプリでOpenLayersとLeafletの両方を使用しました。このトピックについては、このフォーラムや、planet-internetの他のフォーラムで非常に多くの議論がありました。通常、それらは2つのキャンプに分類されます。OpenLayersの機能と柔軟性とLeafletの単純さです。誰かが「OpenLeaf」イニシアチブを産み出し、すぐに両方の世界の最高のものと結婚しても驚かないでしょう!

Leafletは非常にシンプルで、700K以上のOpenlayerと比較して64Kの小さなサイズであり、ごくわずかな手順で、今日のWebおよびモバイルGISアプリの鮮度と魅力を備えたアプリを作成できます。スタック-GeoServer、PostGISなどは標準スタックであるため、OpenLayersまたはLeafletを簡単に組み込むことができます。

とはいえ、私はまだ次の理由でOpenLayersを使います

  1. OpenLayersの周りにはTONの資料があります。リーフレットよりもずっと成熟しています。
  2. コミットとユーザーの比較を確認してください。
  3. OpenLayers、GeoServer、PostGISスタックはFOSSの世界で非常に実績があり、堅実な道を歩んでいます。
  4. OpenLayersは、Map Controlsにもう少し機能を追加しました。
  5. トランジションと視覚効果を作成するにはもう少し作業が必要ですが、OpenLayersで実行できます。

1
また、モバイルデバイスはどうですか?どちらが適していますか?
Sam007

1
はい。現在、OpenLayersとSenchaTouchを使用してモバイルアプリを構築しています。Openlayersで実行されるモバイルマップアプリはたくさんあります。openlayers.org/dev/examples/?q=mobileの例をいくつか示します
ラメシュエラヤヴァッリ

28

リーフレットずっと。Leafletは、オープンソースのタイルベースのブラウザクライアントの進化の次のステップだと思います。Ka-Map-> OpenLayers->リーフレット。

リーフレットは使いやすく、ブリキに書かれていることを正確に実行します。OpenLayersは、すべての人にとってすべてのものになろうとすることで肥大化しました。リーフレットは、80%の時間に必要な20%のことを行います。


14
したがって、「Leaflet all the way」だけでなく、「欠落しているすべての機能が必要ない場合はLeaflet」です。Leafletの方がはるかに使いやすいことに同意しますが、それほど一般的ではない何かをする必要がある場合は、OLを使用する必要があります。
フアン

1
リーフレットには多くの機能がありません。リーフレットは非常に基本的なマップに適していますが、Ramesh Elaiyavalli Ol-3が既に説明したように、最適であり、カスタムビルドを使用してフィーチャを選択することでサイズを小さくすることもできます。
アビジットグジャー

18

webGISアプリケーションでLeafletを使用しましたが、OpenLayersにはLeafletよりもはるかに多くの利点があります。たとえば、モバイルデバイスでアプリケーションを使用する場合は、当面はOpenLayersが必須です。

OpenLayersに関連するリソースはたくさんありますが、Leafletを使用したアプリケーションの開発はOpenLayersより簡単だと思います(コードを読んで構造を理解する方が簡単です)。時間制限があり、Javascriptの使用経験が少ない場合、Leafletを使用する方が、Javascriptを迅速に実行するための優れたソリューションになる場合があります。または、非常に単純なアプリケーションを開発する場合、最初にLeafletを適用する方がはるかに簡単です。

しかし、私がLeafletでアプリケーションを開発した後、最初はOpenLayersを使用したかったと言います。アプリケーションが複雑になると(データベースから複雑なレイヤーを呼び出す、堅牢なモバイルアプリケーションを開発するなど)、Leafletは能力を制限し始めるためです。したがって、学習段階でOpenLayersの構造を理解し、学習するためにもう少し時間を費やすことは、最終的に価値があると思います。

プロジェクトの詳細が検討したとおり。

マップインターフェイスを使用して、機能情報を取得します。

LeafletとOpenLayersはどちらも完全にそれを行うことができます。ここでのポイントは、クリックイベントの座標を取得し、サーバーにリクエストを送信することです。要求リンクは両方のアプリケーションで同じです。

ユーザーが地図上でクリックした場所に関する緯度経度を取得し、ラスターから気候データを取得するカスタマイズされたツールを作成します(サーバー上のpyスクリプトによって処理されます)。

私はリーフレットでそれを達成しました(ちなみに気候データも呼んでいました)。サーバーからラスターデータを取得していませんでしたが、ここでのポイントは、両方のアプリケーションにとって簡単なリクエストリンクを作成することです。ただし、この段階でポリゴンを選択する場合、リーフレットでは達成するのが少し難しくなります。

ユーザーはExcelをアップロードできます。Excelはpyスクリプトに送信され、GeoJSONを返します。これにより、マップ上にベクターフィーチャーが作成されます。

LeafletとOpenLayersの両方でほぼ同じ作業ライン。どちらが優れているかは言えません。

ユーザーが交差するフィーチャをWFSレイヤーから取得するベクターポリゴンを作成できるようにします。

OpenLayersの編集機能についてはわかりませんが、LeafletにはLeaflet Drawというプラグインがあります。LeafletDrawは、描画の完了後に(javascript側で)簡単に描画を操作できます。また、WFSサーバー上の空間データを操作する場合、LeafletにはWFS-Tサポートがあります。OpenLayersはそれよりも優れているかもしれませんが、わかりません。

GeoServer上のPostGISデータストアからレイヤーを取得し、レイヤーをマップに表示します。

PostGISサーバーへの接続が簡単であるため、間違いなくこのジョブにはOpenLayersの方が適しています。

ところで、OpenLayers、GeoServer、PostGISを含むOpenGeo Suiteと呼ばれるアプリケーションスイートがあります。WebベースのGISアプリケーション開発者が抱えるすべての問題を解決します。


素敵な詳細な答え!
Devdatta Tengshe

3年後、リーフレットとモバイル機器についてどう思いますか?改善はありますか?
Mawg

10

このプレゼンテーションの 2つのフレームワークには大きな比較があります。

リーフレットとOpenLayers

また、別の記事にも素晴らしい要約があります。

お客様は、「Map Suite WebAPI Editionを使用して最新のWebアプリを構築する際に使用するのに最適なクライアント側JavaScriptマッピングライブラリはどれですか?」とよく尋ねます。答えは、要件と開発設定によって異なります。両方のフレームワークは十分に文書化されており、モバイルデバイスでしっかりと動作するため、通常、お客様が正しい判断を下せるように、次の質問をします。

作成中のアプリのマッピング部分はどれくらい簡単ですか?

マッピング要件が単純であるほど、リーフレットを使用する傾向が強くなります。Leafletは、ベースマップタイルの使用、パン、ズームなどの最も一般的なマッピングタスクを処理する素晴らしい仕事をしており、そのAPIは理解しやすく、使いやすいです。ただし、一般的なタスクを超えたら、リーフレットプラグインを使用する必要があります。残念ながら存在しない機能を探しているかもしれません。

多くの機能を備えた機能豊富なアプリケーションをお持ちの場合、 OpenLayers 3の使用をお勧めします。OpenLayers3には、Leafletが行う一般的なマッピング機能をすべて実行できる、より大きく複雑なAPIがあります。たとえば、アプリケーションにマップ投影に関する要件がある場合、OpenLayers 3では、リーフレットを使用する場合よりも簡単にこれらの要件を達成できます。もちろん、より堅牢なAPIを使用すると学習曲線が急勾配になるため、プロジェクトの利害関係者に見積もりを提供する際にはその点に留意してください。

どのくらいのJavaScriptコードを書きますか?

LeafletはOpenLayers 3よりも高レベルのAPIであるため、通常、起動して実行するのに必要なJavaScriptコードは少なくなります。ただし、Leafletが提供する標準機能から逸脱したい場合は、正確なニーズを満たすプラグインがない限り、多くのコードを書くことになります。一方、OpenLayers 3は低レベルのAPIであり、マップを初期化して設定するにはより多くのJavaScriptコーディングが必要です。APIによりマップとデータをより詳細に制御できるため、カスタマイズした複雑な要件がある場合に便利です。

概要

最後に、リーフレットを使用するのが最適な場合と、OpenLayers 3が勝つ場合があります。マッピング要件が単純な場合は、まずLeafletをチェックすることをお勧めします。しかし、よりカスタマイズ可能なマッピングライブラリを探していて、JavaScriptの開発に汚いことを気にしないのであれば、OpenLayers 3に手を伸ばしてください。

両方のライブラリには長所があるため、Map Suite WebAPI EditionにはLeafletとOpenLayers 3の両方のコードサンプルが含まれており、Product Centerからダウンロードしたり、ThinkGeo Wikiで表示したりできます。これらのサンプルは、2つのライブラリ間のさまざまなユーザーエクスペリエンスとコーディング要件を直接確認できるため、アプリに使用するクライアント側JavaScriptマッピングライブラリを決定する際に役立つリソースです。

http://blog.thinkgeo.com/2015/09/08/leaflet-vs-openlayers-3-which-is-the-better-client-side-javascript-mapping-library/から


5

私は新しいモバイルプロジェクトでこの決定を行ったばかりであり、明確な勝者はOpenLayersです。この記事の執筆時点では、リーフレットはモバイルではやや低調でした。パン/ズームの移行はスムーズに感じられず、時々見当識障害を起こしていました。ネイティブに移行する前に、OpenLayersを試してみましたが、その経験ははるかに優れています。それでもネイティブほどではありませんが、間違いなく使用可能であり、本当のオプションです。


1
面白い。Leafletは、モバイルデバイスでより軽くて滑らかになると予想していました。この経験を共有していただきありがとうございます。
LarsH 14

@Christian Fritz-OL3またはOL2での経験はありましたか?
sfletche 14

2
@sfletche比較はOL3とリーフレット0.7.3の間でした
クリスチャンフリッツ14

3年後、リーフレットとモバイル機器についてどう思いますか?改善はありますか?
Mawg

はい、間違いなく。本番環境ではリーフレットを使用していますが、モバイルでは問題は発生しません。
クリスチャンフリッツ

3

両方のAPIドキュメントを確認してください。私にとってOpenLayersは、豊富な機能を提供しているように見えますが、開発/デバッグ時間は長くなります。

LeafletOLよりもセクシーではるかに簡単ですが、マップで多くのことをしたい場合は、Leafletまだ実装されていない機能が必要になるかもしれません!

APIをご覧になることをお勧めします!OpenLayersリーフレット

また、あなたは、リーフレットの現在の安定版リリースであることを考慮する必要があるかもしれません0.5.1が、それはだ2.12OpenLayersをため。

PSモバイルアプリケーションを開発したい場合、私は行くかもしれないと思いますLeaflet


3

OpenLayers 3とLeafletの両方でAPIを比較する基本的なチュートリアルがあります。これらのAPIの両方で同じものを作成するようにします。Astun Technologyによって作成され、チュートリアルのタスクは次のとおりです。

  • OSMタイルを使用した基本マップ
  • OS-GBマップと兵器調査タイル
  • マーカー付きのGeoJSONレイヤー
    • GeoJSONレイヤーの情報
  • WMSレイヤー
    • WMSレイヤーの情報

リンクはこちら:https : //astuntechnology.github.io/osgis-ol3-leaflet/index.html


スペースバーによるスクロールが壊れています
バグメノット123

3

何をしようとしているかによって異なります。Leafletは、80%のWebマッププロジェクトでよりシンプルで高速です。

近所を回るのに宇宙船を必要としないのと同じように、ほとんどの場合、OpenLayersは非常に複雑すぎて、特にバージョン3から非常に単純なことを行うことができませんでした。

たとえば、レイヤーセレクターの作成にはLeafletで5〜6行のコードが必要ですが、OpenLayers 4ではゼロから作成する必要があります。それを行うための素晴らしいツールはありますが、ほとんどの場合、カスタマイズされたレイヤーセレクターは必要ありません。

考慮すべきもう1つの重要な点は、インターネットに関する情報、チュートリアル、および討論のほとんどがOpenLayers 2に関するものであることです。バージョン3はバージョン2と互換性がないため、古くなっています。レイヤーセレクター、ポップアップなど、より複雑な機能のような単純なものがたくさんありました。しかし、何らかの理由で、複雑で非常に強力なシステムに進化するために、それらの種類のものを削除しただけです。さらに、現在、リーフレットに関する情報は2012年よりも多くあり、より成熟したテクノロジーです。

結論として、車または宇宙船が必要かどうかを自問してください。車で飛ぶことはありませんが、宇宙船を運転して買い物に行くのは本当に複雑です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.