Visualisierung von 3D-Shapefiles mit Mapserver und Postgis

17

Ich frage mich, gibt es eine Möglichkeit, 3D-Daten mit MapServer zu visualisieren? 3D .shp-Dateien befinden sich in der Postgis-Datenbank, und ich habe Mapserver bereits mit der Datenbank verbunden, jedoch mit einer einfachen Ebene in Mapfile.

Gegenstrom
quelle
MapServer ist für mich ein Webmapping-Server und es ist nicht möglich, damit 3D-Daten zu visualisieren. Ja, mit ArcGis Explorer !!
Welche Art von Daten möchten Sie visualisieren und wie möchten Sie die dritte Dimension einbinden? Die Antwort ist wahrscheinlich nicht, aber es kann Workarounds geben, je nachdem, was Sie versuchen.
SCW
Ich möchte nur meine hypsometrische Karte mit 3D-Linien darüber visualisieren. Sowas wie GRASS nviz Funktion.
Strom

Antworten:

4

Eine Möglichkeit wäre, PostGIS die 3D-Projektion zu überlassen. Vor einigen Monaten habe ich einige einfache Tests durchgeführt, um die kommenden 3D-Distanzfunktionen wie ST_3DShortestLine zu visualisieren.

Ich habe nur ST_RotateX, ST_RotateY und ST_RotateZ verwendet, um die 3D-Geometrie so zu gestalten, dass sie "mehr als die Oberseite der Kamera zeigt".

Eleganter und effizienter wäre es, alle Transformationen mit ST_Affine durchzuführen.

Mit der erweiterten Verwendung dieser Funktion wäre es wahrscheinlich auch möglich, die perspektivische 3D-Ansicht zu erhalten.

Das Problem, soweit ich das ausprobiert habe, ist, dass es nur alles um Origo dreht. Aber auch das sollte sich umgehen lassen.

Auf diese Weise sollten Sie MapServer so gestalten, dass Ihre Daten visuell wie in 3D dargestellt werden. MapServer erkennt jedoch nur eine flache 2D-Geometrie.

Wenn jemand damit Erfolg hat, bin ich interessiert. Ich habe darüber nachgedacht, auf diese Weise eine gefälschte 3D-Funktionalität in postgisonline.org zu erstellen. Ich habe jedoch keine Kenntnisse und keine Zeit, um herauszufinden, wie die Transformationen mit ST_Affine durchgeführt werden sollten, um sowohl eine perspektivische Ansicht als auch eine Rotation um die Mitte des Mapextents zu ermöglichen, anstatt sich um Origo zu drehen.

/ Nicklas

Nicklas Avén
quelle
6

MapServer wird nichts für Sie tun. Sie müssten auf die neueste Version aktualisieren, um überhaupt eine Chance zu haben, da frühere Versionen nur die 3. Dimension in der Datenbankabfrage entfernt haben. Am besten probieren Sie GeoServer und die dortige KML-Unterstützung aus und prüfen Sie, ob Sie sie in Google Earth visualisieren können. Andernfalls schreiben Sie ein kleines PHP-Skript, um Ihre Daten mit der Funktion ST_AsKML () aus PostGIS zu extrahieren und während des Durchlaufs etwas Stil darauf zu schreiben. Keine Magie verfügbar!

Paul Ramsey
quelle
3

Sie können Ihre hypsometrische Karte als Hillshade rendern und dann die 3D-Linien überlagern, sodass Sie nur die 2D-Daten sehen. Wenn Sie noch weiter gehen möchten, können Sie möglicherweise eine 3D-Rendering-Software verwenden, um Schatten von den 3D-Linien auf die hypsometrische Karte zu projizieren, was dazu beitragen sollte, Ihren Linien die Illusion von Höhe zu verleihen. Aber Mapserver selbst wird die Dinge nicht wirklich in 3D zeigen

jvangeld
quelle