Qual é a maneira mais comum de exibir dados geográficos do Postgis no Leaflet?


18

Por exemplo, no meu banco de dados, tenho alguns pontos com coordenadas geográficas. Quero exibi-los na camada Leaflet JS. Quais instrumentos devo usar? Talvez haja alguma API ...


Bem-vindo ao GIS SE? A sua pergunta é realmente "Como exibir pontos PostGIS usando o Leaflet?" Nesse caso, você pode editar sua pergunta para deixar isso mais claro, porque não sei o que você quer dizer com "instrumentos" neste contexto.
PolyGeo

Respostas:


22

Para obter dados de um banco de dados em um navegador da web, você precisa usar um script do lado do servidor. Isso pode ser complicado, porque você precisa estar ciente de vulnerabilidades, como a injeção de SQL. Algumas práticas recomendadas que devem ser observadas são que você deve usar consultas parametrizadas e garantir que o usuário do banco de dados não tenha privilégios, tendo apenas acesso de leitura às tabelas que deseja que sejam públicas.

A maneira mais fácil de obter acesso da API a um banco de dados é usar um pouco de software como o GeoServer, mas esse é um aplicativo muito grande para ser usado em problemas potencialmente pequenos.

Outro método seria fazer com que um script do lado do servidor despejasse os dados em um arquivo GeoJSON periodicamente, dependendo da frequência com que os dados são alterados, podendo ser a cada hora, diariamente, semanalmente. lembre-se de que seu site pode não funcionar enquanto o arquivo está sendo gravado.

Outro método é usar PHP ou Python como um script CGI para criar sua própria API.

Exemplos:

Depois de ter o GeoJSON, dinâmico ou estático, você pode carregá-lo com muita facilidade usando o Leaflet: http://leafletjs.com/examples/geojson.html .


1
Obrigado pela resposta. Eu me inclino a usar o GeoJSON. Agora, quero usar o arquivo CSV em vez do Postgis, convertê-lo em geoJSON e exibir dados com o Leaflet.
John Smith

1
usar, em seguida, ogr2ogr lendo CSV para converter facilmente para GeoJSON
Jorge Sanz

1
Se seus dados são muito grandes e demoram muito para serem carregados como JSON, consulte TopoJSON. github.com/mbostock/topojson
Alex Leith

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.