Visualizzazione di shapefile 3D con Mapserver e Postgis


17

Mi chiedo c'è un modo per visualizzare i dati 3d con mapserver? I file .shp 3D sono nel database postgis e ho già collegato mapserver al database, ma con un semplice livello in mapfile.


Per me, MapServer è un server di webmapping e non è possibile visualizzare dati 3d con esso. Con ArcGis Explorer, sì !!

Che tipo di dati stai cercando di visualizzare e come vuoi includere la terza dimensione? la risposta è probabilmente no, ma potrebbero esserci delle soluzioni alternative a seconda di cosa stai cercando di fare.
scw,

Voglio solo visualizzare la mia mappa ipometrica con linee 3d su di essa. Qualcosa come la funzione GRASS nviz.
Counterflow

Risposte:


4

Un modo per procedere potrebbe essere quello di consentire a PostGIS di eseguire la proiezione 3D. Alcuni mesi fa ho fatto alcuni semplici test per visualizzare le prossime funzioni di distanza 3D come ST_3DShortestLine.

Quello che ho fatto è stato solo usare ST_RotateX, ST_RotateY e ST_RotateZ per fare in modo che la geometria 3D "mostrasse più della parte superiore alla telecamera".

Più elegante ed efficiente sarebbe fare tutte le trasformazioni con ST_Affine.

Con l'uso avanzato di quella funzione immagino che sarebbe possibile ottenere anche la vista prospettica 3D.

Il problema, per quanto ho provato, è che sta ruotando tutto intorno a Origo. Ma anche quello dovrebbe essere possibile risolvere il problema.

In questo modo dovresti fare in modo che MapServer presenti i tuoi dati visivamente come in 3D, ma MapServer vede solo una geometria 2D piatta.

Se qualcuno ci riesce, sono interessato. Ho pensato di creare una falsa funzionalità 3D in questo modo in postgisonline.org. Ma non ho conoscenza e tempo per capire come dovrebbero essere fatte le trasformazioni con ST_Affine sia per dare una visione prospettica sia per ruotare attorno al centro del mapextent invece di ruotare attorno a origo.

/ Nicklas


6

MapServer non farà nulla per te. Dovresti aggiornare alla versione più recente per avere una possibilità, poiché le versioni precedenti hanno appena eliminato la terza dimensione nella query del database. La tua scommessa migliore potrebbe essere provare GeoServer e il supporto KML lì e vedere se riesci a visualizzare in Google Earth. O in caso contrario, scrivi un piccolo script PHP per estrarre i tuoi dati da PostGIS con la funzione ST_AsKML () e avvolgerne uno stile lungo il percorso. Nessuna magia disponibile però!


3

Potresti rendere la tua mappa ipometrica come Hillshade e quindi sovrapporre le linee 3D in modo da vedere solo i dati 2D. Se vuoi andare oltre, potresti essere in grado di utilizzare il software di rendering 3D per proiettare ombre dalle linee 3D sulla mappa ipometrica, il che dovrebbe aiutare a dare l'illusione dell'altezza alle tue linee. Ma lo stesso Mapserver non mostrerà veramente le cose in 3D

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.