Gostaria de saber se existe uma maneira de visualizar dados 3D com o mapserver? Os arquivos .shp 3D estão no banco de dados postgis e eu já conectei o mapserver ao banco de dados, mas com uma camada simples no mapfile.
Gostaria de saber se existe uma maneira de visualizar dados 3D com o mapserver? Os arquivos .shp 3D estão no banco de dados postgis e eu já conectei o mapserver ao banco de dados, mas com uma camada simples no mapfile.
Respostas:
Um caminho a seguir pode ser deixar o PostGIS fazer a projeção em 3D. Fiz alguns testes simples há alguns meses para visualizar as próximas funções de distância 3D como ST_3DShortestLine.
O que eu fiz foi apenas usar ST_RotateX, ST_RotateY e ST_RotateZ para fazer a geometria 3D "mostrar mais do que a parte superior da câmera".
Mais elegante e eficiente seria fazer todas as transformações com ST_Affine.
Com o uso avançado dessa função, acho que também seria possível obter a visualização em perspectiva 3D.
O problema, tanto quanto tentei, é que ele está apenas girando tudo em torno do origo. Mas também deve ser possível contornar isso.
Dessa forma, você deve fazer o MapServer apresentar seus dados visualmente como 3D, mas o MapServer vê apenas uma geometria 2D plana.
Se alguém tiver sucesso com isso, estou interessado. Pensei em criar uma funcionalidade 3D falsa dessa maneira no postgisonline.org. Mas não tenho conhecimento e tempo para descobrir como as transformações devem ser feitas com ST_Affine para fornecer uma vista em perspectiva e girar em torno do centro do mapextent em vez de girar em torno do origo.
/ Nicklas
O MapServer não fará nada por você. Você precisaria atualizar para a versão mais recente para ter uma chance, pois as versões anteriores acabavam com a terceira dimensão na consulta ao banco de dados. Sua melhor aposta pode ser tentar o GeoServer e o suporte KML lá e ver se você pode visualizar no Google Earth. Ou, na sua falta, escreva um pequeno script PHP para extrair seus dados do PostGIS com a função ST_AsKML () e envolva alguns estilos no caminho. Não há mágica disponível!
Você pode renderizar seu mapa hipsométrico como um Hillshade e, em seguida, sobrepor as linhas 3D para ver apenas os dados 2D. Se você quiser ir mais longe, poderá usar o software de renderização 3D para projetar sombras das linhas 3D no mapa hipsométrico, o que ajudará a dar a ilusão de altura às suas linhas. Mas o próprio Mapserver não mostrará realmente as coisas em 3D