Visualisasi shapefile 3D dengan Mapserver dan Postgis

17

Saya bertanya-tanya apakah ada cara untuk memvisualisasikan data 3d dengan mapserver? File .shp 3D ada dalam database postgis, dan saya sudah menghubungkan mapserver ke database, tetapi dengan layer sederhana di mapfile.

melawan arus
sumber
Bagi saya, MapServer adalah server pemetaan web dan tidak mungkin memvisualisasikan data 3d dengannya. Dengan ArcGis Explorer, ya !!
Jenis data apa yang ingin Anda visualisasikan, dan bagaimana Anda ingin memasukkan dimensi ketiga? jawabannya mungkin tidak, tetapi mungkin ada penyelesaian tergantung pada apa yang Anda coba lakukan.
scw
Saya hanya ingin memvisualisasikan peta hipsometrik saya dengan garis-garis 3d di atasnya. Sesuatu seperti fungsi GRASS nviz.
terhadap aliran

Jawaban:

4

Salah satu cara untuk pergi mungkin membiarkan PostGIS melakukan proyeksi 3D. Saya melakukan beberapa tes sederhana beberapa bulan yang lalu untuk memvisualisasikan fungsi jarak 3D yang akan datang seperti ST_3DShortestLine.

Apa yang saya lakukan adalah hanya menggunakan ST_RotateX, ST_RotateY dan ST_RotateZ untuk membuat geometri 3D "menunjukkan lebih dari sisi atas ke kamera".

Lebih elegan dan efisien akan melakukan semua transformasi dengan ST_Affine.

Dengan penggunaan fungsi yang canggih, saya kira akan mungkin untuk mendapatkan tampilan perspektif 3D juga.

Masalahnya sejauh yang saya coba ini adalah bahwa itu hanya memutar segala sesuatu di sekitar origo. Tapi itu juga harus bisa diatasi.

Dengan cara ini Anda harus membuat MapServer menyajikan data Anda secara visual seperti 3D tetapi MapServer hanya melihat geometri 2D datar.

Jika seseorang berhasil dengan ini saya tertarik. Saya telah berpikir untuk membuat fungsionalitas 3D palsu dengan cara ini di postgisonline.org. Tetapi saya tidak memiliki pengetahuan dan waktu untuk mencari tahu bagaimana transformasi harus dilakukan dengan ST_Affine untuk memberikan tampilan perspectiv dan untuk memutar di sekitar pusat mapextent daripada berputar di sekitar origo.

/ Nicklas

Nicklas Avén
sumber
6

MapServer tidak akan melakukan apa pun untuk Anda. Anda harus memutakhirkan ke versi terbaru untuk memiliki kesempatan, karena versi sebelumnya hanya menghilangkan dimensi ke-3 dalam kueri basis data. Taruhan terbaik Anda mungkin untuk mencoba GeoServer dan dukungan KML di sana dan lihat apakah Anda dapat memvisualisasikannya di Google Earth. Atau jika tidak, tuliskan skrip PHP kecil untuk menarik data Anda keluar dari PostGIS dengan fungsi ST_AsKML () dan bungkus beberapa styling di atasnya pada saat melewati. Tidak ada keajaiban yang tersedia!

Paul Ramsey
sumber
3

Anda bisa merender peta hipsometrik Anda sebagai Hillshade dan kemudian overlay garis 3D sehingga Anda hanya melihat data 2D. Jika Anda ingin melangkah lebih jauh, Anda mungkin dapat menggunakan perangkat lunak rendering 3D untuk memproyeksikan bayangan dari garis 3D ke peta hipsometrik, yang seharusnya membantu memberikan ilusi ketinggian pada garis Anda. Tetapi Mapserver sendiri tidak akan benar-benar menunjukkan hal-hal dalam 3D

jvangeld
sumber