Je me demande s'il y a un moyen de visualiser des données 3D avec mapserver? Les fichiers 3D .shp sont dans la base de données postgis, et j'ai déjà connecté mapserver à la base de données, mais avec une simple couche dans mapfile.
17
Réponses:
Une façon de procéder pourrait être de laisser PostGIS faire la projection 3D. J'ai fait quelques tests simples il y a quelques mois pour visualiser les fonctions de distance 3D à venir comme ST_3DShortestLine.
Ce que j'ai fait, c'était juste d'utiliser ST_RotateX, ST_RotateY et ST_RotateZ pour faire en sorte que la géométrie 3D "montre plus que le dessus de la caméra".
Plus élégant et efficace serait de faire toutes les transformations avec ST_Affine.
Avec une utilisation avancée de cette fonction, je suppose qu'il serait également possible d'obtenir la vue 3D en perspective.
Le problème pour autant que j'aie essayé, c'est qu'il ne fait que tout tourner autour de l'origo. Mais cela devrait également être possible de contourner.
De cette façon, vous devez faire en sorte que MapServer présente vos données visuellement comme en 3D, mais MapServer ne voit qu'une géométrie 2D plate.
Si quelqu'un réussit, je suis intéressé. J'ai pensé à créer une fausse fonctionnalité 3D de cette façon dans postgisonline.org. Mais je n'ai pas les connaissances et le temps nécessaires pour comprendre comment les transformations doivent être effectuées avec ST_Affine à la fois pour donner une vue en perspective et pour tourner autour du centre du mapextent au lieu de tourner autour de l'origo.
/ Nicklas
la source
MapServer ne fera rien pour vous. Vous devriez mettre à niveau vers la dernière version pour avoir une chance, car les versions précédentes ont juste supprimé la 3ème dimension dans la requête de base de données. Votre meilleur pari pourrait être d'essayer GeoServer et le support KML et de voir si vous pouvez visualiser dans Google Earth. Ou à défaut, écrivez un petit script PHP pour extraire vos données de PostGIS avec la fonction ST_AsKML () et envelopper un style sur le chemin. Pas de magie cependant!
la source
Vous pouvez rendre votre carte hypsométrique en ombrage, puis superposer les lignes 3D de manière à ne voir que les données 2D. Si vous voulez aller plus loin, vous pourrez peut-être utiliser un logiciel de rendu 3D pour projeter des ombres des lignes 3D sur la carte hypsométrique, ce qui devrait aider à donner l'illusion de hauteur à vos lignes. Mais Mapserver lui-même ne va pas vraiment montrer les choses en 3D
la source