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アプリケーション開発者が抱えるすべての問題を解決します。