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.
17
Antworten:
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
quelle
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!
quelle
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
quelle