Continuo vendo desenvolvedores da Web que não são de GIS enfrentando esse problema e não tenho certeza de qual é a solução.
- Há alguns conjuntos de dados de milhares de itens.
- Queremos mostrar um mapa para o usuário, com o subconjunto visível dele mostrado como elementos interativos e clicáveis.
Que métodos existem para fazer isso?
Eu posso pensar nelas, mas elas não são muito satisfatórias, então estou me perguntando o que mais há:
Armazene todos os dados em um arquivo GeoJSON, transfira-os para o navegador e deixe o Leaflet exibi-los. Problema: realmente não funciona com grandes conjuntos de dados. TopoJSON aumenta um pouco o limite. Isso também causa um grande atraso no carregamento da página.
Use o Mapbox, armazene todos os dados em uma camada interativa no Mapbox e use o Mapbox.js para exibi-lo. Funciona muito bem, mas custa dinheiro e você não pode hospedá-lo.
Use o GeoServer para acessar um banco de dados PostGIS, use o plug-in de folheto WFS-geojson para acessar os dados a partir daí. Provavelmente funciona, mas o plugin WFS-geojson Leaflet não parece mais ser mantido.
Use o CartoDB, armazene todos os dados em uma tabela CartoDB e use o CartoDB.js para exibi-lo. Funciona muito bem, mas pode ficar muito caro. É possível hospedá-lo você mesmo, mas a instalação do CartoDB não é trivial.
Tudo isso me faz pensar que deve estar faltando uma maneira muito melhor e livre. O que é isso?
EDITAR
Talvez eu tenha baixado o plug-in WFS-geojson com muita facilidade. Há uma bifurcação que ainda vê alguma atividade (4 meses atrás): https://github.com/johanlahti/azgs-leaflet