Eu estou carregando muitos pontos, polígonos e linhasde um banco de dados PostGIS para um mapa do google. Se eu carregar o banco de dados inteiro, ele "mata o navegador", portanto, estou procurando uma maneira de carregar apenas na área que o usuário pode ver. Existe uma maneira de conseguir isso?
Eu estou usando o GMaps3 para mostrar os dados, RGeo, PostGIS e Rails 3.
Respostas:
1 para resposta № 1Você pode carregar os pontos via ajax.
Observe o bounds_changed
-evento do mapa, envie os limites para o servidore deixe o servidor responder com os pontos (filtrados pelos limites dados). Como funciona exatamente a filtragem eu não posso dizer exatamente, porque eu não estou familiarizado com PostGIS, mas ST_CONTAINS parece ser o método que você precisa.
No entanto, um usuário pode aumentar o zoom para um nível muito baixo, nesse caso você ainda obterá uma grande quantidade de pontos, mas você pode restringir adicionalmente o carregamento dos pontos para um nível de zoom mais alto.
Outra opção (eu preferiria): importe os dados para um FusionTable e use um FusionTableLayer, isso daria um desempenho muito melhor.