Мне интересно, есть ли способ визуализации 3D-данных с помощью mapserver? 3D .shp файлы находятся в базе данных postgis, и я уже подключил mapserver к базе данных, но с простым слоем в mapfile.
Мне интересно, есть ли способ визуализации 3D-данных с помощью mapserver? 3D .shp файлы находятся в базе данных postgis, и я уже подключил mapserver к базе данных, но с простым слоем в mapfile.
Ответы:
Один из способов - позволить PostGIS выполнять 3D-проекцию. Несколько месяцев назад я провел несколько простых тестов, чтобы визуализировать будущие трехмерные функции расстояния, такие как ST_3DShortestLine.
Я просто использовал ST_RotateX, ST_RotateY и ST_RotateZ, чтобы 3D-геометрия «показывала больше, чем верхняя часть камеры».
Более элегантным и эффективным было бы сделать все преобразования с помощью ST_Affine.
Полагаю, что при расширенном использовании этой функции можно было бы также получить перспективное трехмерное изображение.
Проблема, насколько я пытался это сделать, заключается в том, что он просто вращает все вокруг оригинала. Но также это должно быть возможным для обхода.
Таким образом, вы должны заставить MapServer представлять ваши данные визуально, как 3D, но MapServer видит только плоскую 2D геометрию.
Если кому-то это удастся, мне это интересно. Я думал о создании фальшивой 3D-функциональности таким образом в postgisonline.org. Но у меня нет знаний и времени, чтобы выяснить, как преобразования должны быть сделаны с ST_Affine, чтобы дать перспективное представление и вращаться вокруг центра mapextent вместо вращения вокруг origo.
/ Никлас
MapServer не собирается ничего делать для вас. Вам нужно было бы обновить его до последней версии, чтобы иметь хоть какой-то шанс, так как предыдущие версии просто отбросили 3-е измерение в запросе к базе данных. Лучше всего попробовать использовать GeoServer и поддержку KML и посмотреть, сможете ли вы визуализировать в Google Планета Земля. Или, если это не удалось, напишите небольшой PHP-скрипт, чтобы вытащить ваши данные из PostGIS с помощью функции ST_AsKML () и обернуть в него некоторые стили. Никакой магии нет!
Вы можете визуализировать свою гипсометрическую карту в виде Hillshade, а затем наложить 3D-линии так, чтобы вы видели только 2D-данные. Если вы хотите пойти дальше, вы можете использовать программное обеспечение для 3D-рендеринга, чтобы проецировать тени от 3D-линий на гипсометрическую карту, что должно помочь создать иллюзию высоты ваших линий. Но сам Mapserver не собирается действительно показывать вещи в 3D