MapserverとPostgisを使用した3Dシェープファイルの視覚化


17

mapserverで3Dデータを視覚化する方法はありますか?3D .shpファイルはpostgisデータベースにあり、mapserverを既にデータベースに接続していますが、mapfileには単純なレイヤーがあります。


私にとって、MapServerはWebマッピングサーバーであり、3Dデータを視覚化することはできません。はい、ArcGis Explorerで!

どんな種類のデータを視覚化しようとしていますか?また、3番目の次元をどのように含めたいですか?答えはおそらくそうではありませんが、あなたがやろうとしていることに応じて回避策があるかもしれません。
scw

私は単に3次元線でそのhypsometricマップを視覚化したいだけです。GRASS nviz関数のようなもの。
アゲインストフロー

回答:


4

1つの方法は、PostGISに3D投影を行わせることです。数か月前に、ST_3DShortestLineのような今後の3D距離関数を視覚化するために簡単なテストをいくつか行いました。

私がやったのは、ST_RotateX、ST_RotateY、およびST_RotateZを使用して、3Dジオメトリを「カメラの上面よりも多く表示する」ようにすることでした。

よりエレガントで効率的なのは、ST_Affineを使用してすべての変換を行うことです。

その機能を高度に使用することで、3Dの遠近感も取得できると思います。

私がこれを試した限りの問題は、それがただオリゴを中心にすべてを回転させているということです。ただし、回避策も可能です。

この方法では、MapServerにデータを視覚的に3Dのように表示する必要がありますが、MapServerはフラットな2Dジオメトリのみを表示します。

誰かがこれで成功した場合、私は興味があります。postgisonline.orgで、この方法で偽の3D機能を作成することを考えました。しかし、パースペクティブビューを提供し、オリゴの周りを回転する代わりにmapextentの中心の周りを回転するために、ST_Affineを使用して変換を行う方法を理解する時間と知識がありません。

/ Nicklas


6

MapServerはあなたのために何もしません。以前のバージョンではデータベースクエリの3番目のディメンションが削除されていたため、チャンスを得るために最新バージョンにアップグレードする必要があります。最善の策は、GeoServerとKMLサポートを試して、Google Earthで視覚化できるかどうかを確認することです。または、失敗した場合、ST_AsKML()関数を使用してPostGISからデータをプルする小さなPHPスクリプトを作成し、途中でスタイリングをラップします。魔法はありません!


3

ヒプソメトリックマップを陰影起伏としてレンダリングし、2Dデータのみが表示されるように3Dラインをオーバーレイできます。さらに先に進みたい場合は、3Dレンダリングソフトウェアを使用して、3Dラインからハイソメトリックマップに影を投影できます。これにより、ラインに高さの錯覚を与えることができます。しかし、Mapserver自体は3Dで物事を真に表示するつもりはありません

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