2

高品質のLiDARデータがいくつかあります。それを動的に処理し、その時点での入力と標高に応じてフィールド(標高フィールドではない)を更新する必要があります。これが完了したら、このラスターデータをWebマップ(Bing Map、Googleマップなど)にできるだけリアルタイムで表示する必要があります。これまでにできることは次のとおりです。ArcGISPythonLibを使用して、LIDARクリップを処理し、フィールドを追加し、入力に応じてそのフィールドを更新するスクリプトをいくつか作成しました。これで、基本的にすべてが可能になりました。ラスター上のポイントは、5分ごとに3つのカテゴリに分類されます。このラスターをarcGISで表示すると、ベースマップ上に重なった3色のラスターを表示できます。

しかし今、私はこれらのラスタークリップをWebマップ上にレンダリングする必要があります。私の最初は、これらの分類されたクリップをポリゴン化し、JavaScriptマップにポリゴンを表示することでした。しかし、ポリゴン化には多くの時間がかかるため、ポリゴン化は排除されます。

今私が持っている他のオプションは、GeoServerのラスターレンダリング機能を使用して画像を表示することです。次に、私が作成したこのWMSを使用して、BingMapsに重ねます。これは私が立ち往生しているところです。Geoserverがサポートするラスター(Geotiff、jpg200oなど)をADFファイルから自動的に取得し、最初に開いているレイヤーでレンダリングしてから、BingMapでオーバーラップさせる方法がわかりません。

マップ上で動的に変化するラスターのこの種のレンダリングを行う優れたチュートリアルを誰かが知っているなら、私にそれを指摘していただければ素晴らしいでしょう。

また、この種のシステムを導入するためのより良いアプローチが他にある場合は、提案してください。私はほとんどすべての解決策を受け入れています。

ありがとう

PS:私は、Webプログラミング、Webサービス、データベース、スクリプトなどがかなり得意です。しかし、LidarとGeo-Rasterを使用するのは初めてです。

4

2 に答える 2

4

Pythonに精通しているので、GDALライブラリ(http://www.gdal.org/gdal2tiles.html)に付属しているGDAL2Tiles.py pythonスクリプトを使用して、地理参照されたラスターファイルを取得して切り刻むことができます。 TMSタイルシステム(Bing Maps / Google Maps / OpenStreetMapsが使用するz/x / yシステム)に従って番号が付けられた、事前にレンダリングされた256px x256pxPNGタイル。このスクリプトを既存のワークフローに組み込んで、5分ごとに画像タイルのセットを再生成します。

次に、結果のタイルが出力されるディレクトリを直接指す新しいBing Maps TileSourceSpecificationを作成するだけで、中間のWMSサービスはまったく必要ありません。

于 2011-08-17T09:10:48.797 に答える
2

これは、OpenLayersでのGeoserverのラスターレンダリングとベースマップとしてのBingMapsを使用して解決しました。基本的に、LIDARを処理し、GeoTiff形式を解き放つPythonスクリプトがあります。Geoserverは、このGeoTIFFをデータストアとして使用し、WMS(Webマッピングサーバー)を公開します。Open Layerを使用すると、BingMaps画像でGeoTIFFをオーバーラップできます。だから私はタイルとタイリングスキームを作成するために出かける必要はありません。データが変更されるとすぐに、ジオサーバーは新しいデータをレンダリングします!誰かがこれについてもっと詳細が必要な場合は私に知らせてください。

---更新:2015年4月3日---

より正確には、GeoServerでGeoTIFFラスターをWMSサービスとして設定します。次に、JavaScriptの関数を使用して、SLD(Styled Layer Descriptor XML)を変更し、サーバーがライブパラメーターに従ってレンダリングされたラスターをレンダリングしました。

これは、ArcGISServerのImageServerAPIを使用して実行できるようになりました。ラスターを操作するためのはるかに強力な関数を提供します。

于 2011-08-30T06:06:28.380 に答える