Mais

Opções para exibir vetores PostGIS em OpenLayers

Opções para exibir vetores PostGIS em OpenLayers


Eu sou muito novo no mapeamento da web, então esta questão pode ser um pouco equivocada.

Eu quero ter uma interface web muito simples usando OpenLayers (ou mesmo Google Maps, se for mais fácil) que possa exibir uma série de tabelas de pontos e polígonos que estão atualmente em PostGIS.

Quero que seja o mais simples (e com a menor manutenção possível):

  • Não quero ter que criar blocos (a menos que haja um bom motivo), ou ter uma camada enorme e complexa de middleware.
  • O desempenho não precisa ser fenomenal, pois é para uso interno e, portanto, não precisa ser ampliado para além de alguns usuários simultâneos.
  • O estilo das camadas do vetor é de importância mínima.
  • As ferramentas de código aberto são muito preferidas, pois quase não tenho orçamento para isso.

Qual é a abordagem recomendada para isso?


A maneira mais fácil de configurar um mapa online a partir de fontes PostGIS é usando o Geoserver. O Geoserver User Manual contém uma boa introdução para usar PostGIS como fonte de dados. Você basicamente adiciona um armazenamento de dados contendo as informações de conexão e depois disso pode publicar qualquer tabela contendo geometrias. Além do PostGIS, você também pode usar muitas outras fontes de dados:

De dentro da interface da web do Geoserver, você também pode visualizar as camadas em uma página da web do OpenLayers. Você pode usar o código-fonte desta página de visualização para construir seu próprio aplicativo OpenLayers.

O Geoserver oferece muitas opções de estilo para dados vetoriais e raster. Para começar, você pode ficar feliz em apenas personalizar alguns dos estilos pré-fabricados que vêm com a instalação.

Por padrão, o Geoserver não faz blocos e o OpenLayers não solicita blocos. Se você não precisa de alto desempenho, não precisa se preocupar com telhas de qualquer maneira.

Pessoalmente, acho que OpenLayers é mais fácil de usar do que a API do Google Maps e você será independente do Google. Se você precisa de um mapa de fundo, pode preferir dar uma olhada no OpenStreetMap.


Se você realmente não quer uma camada de middleware grande, pode usar o TinyOWS (http://tinyows.org/trac) - nunca tentei, mas afirma ser pequeno e rápido. Além disso, ele usa os padrões OGC, portanto, se você decidir publicar para um público mais amplo e não conseguir continuar mudando para o GeoServer ou MapServer, você poderá continuar usando o mesmo código de cliente sem alterações.


Você pode usar qualquer aplicativo que possa servir ao protocolo WFS. Com Openlayers você pode usar facilmente dados PostGIS via protocolo WFS. Existem poucos aplicativos FLOSS que podem fazer isso. Por exemplo, FeatureServer, Geoserver, MapServer ... Se você é novo no mapeamento da web, eu recomendaria o Geoserver porque é muito fácil de começar.

Veja este exemplo Openlayers com WFS.


Openlayers suporta um grande número de formatos de dados vetoriais (GeoJSON, GML, KML ...), que podem ser exibidos e estilizados usando a camada OpenLayers Vector.

Talvez o middleware mais simples seja o FeatureServer, que pode servir dados PostGIS para a maioria dos formatos OL suportados. É fácil de configurar e tem suporte para consultas espaciais / atributos simples.

Mas, se você precisa de algo mais poderoso, o Geoserver pode ser uma solução viável.


Você pode alimentar json, kml amd wkt de postgis como st_asgeojson (), st_asKML () para script de servidor PHP ou JSP e então usar a classe openlayers ajax para conectar fonte de dados de seu servidor


Você poderia fazer isso facilmente usando Geomajas, que leria seus dados do banco de dados usando Hibernate ou Geotools. Isso é totalmente Java, o que pode ser um problema se você preferir outras linguagens.


Bem, o que você pode fazer é usar a biblioteca OpenLayers e uma linguagem de servidor para enviar todos os tipos de geometria postgis para o Openlayers. Você vai precisar de:

  • Openlayers.Layer.Vector para criar uma camada para dados vetoriais
  • Openlayers OpenLayers.Protocol.HTTP para ler dados do servidor Postgis
  • OpenLayers.Strategy.Fixed opcional
  • OpenLayers.Feature.Vector todos os vetores pertencem a esta classe no cliente
  • OpenLayers.Format.GeoJSON ou OpenLayers.Format.JSON
  • Uma linguagem do lado do servidor para fazer uma solicitação ao Postgis e bombear geometrias para o cliente
  • Um analisador JSON no servidor e cliente para transportar dados neste formato

Com isso, você pode exibi-los facilmente sem nenhum middleware mais.


Assista o vídeo: Create Spatial Table u0026 Add Geometry Column in #PostGIS. #PG #QGIS. Urdu. Hindi. Eng. #19