Wizualizacja plików kształtów 3D za pomocą Mapserver i Postgis

17

Zastanawiam się, czy istnieje sposób na wizualizację danych 3D za pomocą serwera map? Pliki 3D .shp znajdują się w bazie danych Postgis, a ja już podłączyłem mapserver do bazy danych, ale z prostą warstwą w pliku map.

przeciwprąd
źródło
Dla mnie MapServer jest serwerem mapowania stron internetowych i nie można na nim wizualizować danych 3D. Z ArcGis Explorer, tak !!
Jakie dane próbujesz wyobrazić sobie i jak chcesz uwzględnić trzeci wymiar? odpowiedź prawdopodobnie nie jest, ale mogą istnieć obejścia w zależności od tego, co próbujesz zrobić.
scw
Chcę tylko zwizualizować moją mapę hipsometryczną z liniami 3d nad nią. Coś jak funkcja GRASS nviz.
przeciw przepływowi

Odpowiedzi:

4

Jednym ze sposobów może być pozwolenie PostGIS na wykonanie projekcji 3D. Kilka miesięcy temu wykonałem kilka prostych testów, aby wizualizować nadchodzące funkcje odległości 3D, takie jak ST_3DShortestLine.

Po prostu użyłem ST_RotateX, ST_RotateY i ST_RotateZ, aby geometria 3D „pokazywała więcej niż górną część kamery”.

Bardziej eleganckie i wydajne byłoby wykonanie wszystkich przekształceń za pomocą ST_Affine.

Wydaje mi się, że dzięki zaawansowanemu użyciu tej funkcji można także uzyskać perspektywiczny widok 3D.

Problem, o ile próbowałem, polega na tym, że obraca wszystko wokół origo. Ale to również powinno być możliwe do obejścia.

W ten sposób powinieneś zmusić MapServer do prezentacji danych wizualnie jak 3D, ale MapServer widzi tylko płaską geometrię 2D.

Jeśli komuś się to uda, jestem zainteresowany. Pomyślałem o stworzeniu w ten sposób fałszywej funkcji 3D w postgisonline.org. Ale nie mam wiedzy i czasu, aby wymyślić, w jaki sposób należy wykonać transformacje za pomocą ST_Affine, aby zarówno uzyskać widok perspektywiczny, jak i obrócić się wokół środka mapy tekstowej zamiast obracać się wokół oryginału.

/ Nicklas

Nicklas Avén
źródło
6

MapServer nic dla ciebie nie zrobi. Trzeba będzie zaktualizować do najnowszej wersji, aby mieć nawet szansę, ponieważ poprzednie wersje po prostu usuwały trzeci wymiar w zapytaniu do bazy danych. Najlepiej jest wypróbować GeoServer i obsługę KML i sprawdzić, czy można wizualizować w Google Earth. Lub jeśli to nie wystarczy, napisz mały skrypt PHP, aby wyciągnąć dane z PostGIS za pomocą funkcji ST_AsKML () i owinąć nim nieco stylizacji. Nie ma jednak magii!

Paul Ramsey
źródło
3

Możesz renderować mapę hipsometryczną jako Hillshade, a następnie nakładać linie 3D, aby wyświetlać tylko dane 2D. Jeśli chcesz pójść dalej, możesz użyć oprogramowania do renderowania 3D, aby rzutować cienie z linii 3D na mapę hipsometryczną, co powinno dać iluzję wysokości twoich linii. Ale sam Mapserver nie pokaże rzeczy w 3D

jvangeld
źródło