Мені цікаво, чи існує спосіб візуалізації 3d даних за допомогою сервера mapserver? 3D .shp-файли знаходяться в базі даних postgis, і я вже підключив сервер mapbase до бази даних, але з простим шаром у mapfile.
Мені цікаво, чи існує спосіб візуалізації 3d даних за допомогою сервера mapserver? 3D .shp-файли знаходяться в базі даних postgis, і я вже підключив сервер mapbase до бази даних, але з простим шаром у mapfile.
Відповіді:
Одним із шляхів може бути дозволити PostGIS робити 3D-проекцію. Я зробив кілька простих тестів кілька місяців тому, щоб візуалізувати наступні тривимірні функції, такі як ST_3DShortestLine.
Що я зробив, це просто використовувати ST_RotateX, ST_RotateY та ST_RotateZ, щоб зробити 3D-геометрію "більш показовою, ніж верхньою стороною для камери".
Більш елегантним та ефективним було б зробити всі перетворення за допомогою ST_Affine.
При вдосконаленому використанні цієї функції я думаю, що можна було б отримати перспективний тривимірний вид також.
Проблема, наскільки я це спробував, полягає в тому, що він просто обертає все навколо оріго. Але також це має бути можливим для вирішення.
Таким чином, ви повинні змусити MapServer представляти свої дані візуально як 3D, але MapServer бачить лише плоску 2D геометрію.
Якщо комусь це вдається, я зацікавлений. Я думав над тим, щоб зробити підроблений 3D-функціонал таким чином на postgisonline.org. Але я не маю знань і часу, щоб зрозуміти, як трансформації слід проводити за допомогою ST_Affine, щоб вони надавали перспективний погляд і оберталися навколо центру максентенту, а не оберталися навколо оріго.
/ Ніклас
MapServer не збирається нічого робити за вас. Вам доведеться оновити до останньої версії, щоб мати навіть шанс, оскільки попередні версії просто позбавили 3-го виміру в запиті до бази даних. Найкраще може спробувати там GeoServer та підтримку KML і побачити, чи можна візуалізувати в Google Earth. Якщо цього не зробити, напишіть невеликий скрипт PHP, щоб витягнути ваші дані з PostGIS за допомогою функції ST_AsKML () та обернути на ній певну стилізацію. Немає жодної магії!
Ви можете зобразити свою гіпсометричну карту у вигляді гірки, а потім накладати 3D-лінії, щоб ви бачили лише 2D-дані. Якщо ви хочете піти далі, можливо, ви зможете використовувати програмне забезпечення для 3D-рендерінгу для проектування тіней від 3D-ліній на гіпсометричну карту, яка повинна допомогти надати вашим лініям ілюзію висоти. Але сам Mapserver не збирається по-справжньому показувати речі в 3D