mapserver로 3D 데이터를 시각화하는 방법이 궁금합니다. 3D .shp 파일은 postgis 데이터베이스에 있으며 이미 mapserver를 데이터베이스에 연결했지만 mapfile에 간단한 레이어를 사용했습니다.
답변
한 가지 방법은 PostGIS가 3D 투영을하도록하는 것입니다. 몇 달 전에 간단한 테스트를 수행하여 ST_3DShortestLine과 같은 다가오는 3D 거리 기능을 시각화했습니다.
내가 한 것은 ST_RotateX, ST_RotateY 및 ST_RotateZ를 사용하여 3D 지오메트리를 “카메라의 윗면보다 더 많이 표시”하는 것입니다.
ST_Affine로 모든 변환을 수행하는 것이 더 우아하고 효율적입니다.
이 기능을 고급으로 사용하면 원근 3D 뷰를 얻을 수 있다고 생각합니다.
내가 시도한 한 문제는 그것이 오리고 주위의 모든 것을 회전시키고 있다는 것입니다. 그러나 해결 방법도 가능해야합니다.
이러한 방식으로 MapServer가 3D처럼 시각적으로 데이터를 표시하도록해야하지만 MapServer는 평평한 2D 형상 만 볼 수 있습니다.
누군가가 이것으로 성공하면 관심이 있습니다. postgisonline.org에서 가짜 3D 기능을 만드는 방법에 대해 생각했습니다. 그러나 ST_Affine로 변환을 수행하여 관점을 제공하고 origo를 중심으로 회전하는 대신 mapextent의 중심을 중심으로 회전하는 방법을 알아낼 시간과 지식이 없습니다.
/ 니클라스
답변
MapServer는 당신을 위해 아무것도하지 않을 것입니다. 이전 버전이 데이터베이스 쿼리에서 3 차원을 제거 했으므로 최신 버전으로 업그레이드해야 할 수도 있습니다. 가장 좋은 방법은 GeoServer 및 KML 지원을 사용해보고 Google 어스에서 시각화 할 수 있는지 확인하는 것입니다. 또는 실패하면 ST_AsKML () 함수를 사용하여 PostGIS에서 데이터를 가져 와서 스타일링을 마무리하는 작은 PHP 스크립트를 작성하십시오. 그래도 마법은 없습니다!
답변
최면지도를 언덕 모양으로 렌더링 한 다음 3D 선을 오버레이하여 2D 데이터 만 볼 수 있습니다. 더 나아가고 싶다면 3D 렌더링 소프트웨어를 사용하여 3D 선의 그림자를 최면지도로 투영 할 수 있습니다. 그러나 Mapserver 자체는 실제로 3D로 사물을 보여주지 않습니다.