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.
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.
Jawaban:
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
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!
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