Há um tempo atrás (+- 3 anos) criei um projeto que era pra ser colaboração de pontos de interesse para GPS. Um usuário marcava um ponto na tela, e a medida que ia navegando, podia ver outros pontos cadastrados.
1- Escutar o evento de drag do mapa e no dragend calculada o movimento de latitude e longitude.
2- Subtraia esse valor de uma constante anterior, ou centro do mapa, e a partir daí fazia um select na base de dados, tendo como range latitude inicial/latitude final e longitude inicial/longitude final.
// eventos para carregar dinamico os markers - ao iniciar, marca pontos iniciais
GEvent.addListener(map,"dragstart",function(){
lati = map.getCenter().lat();
lngi = map.getCenter().lng()
});
// evento para quando terminar de arrastar
GEvent.addListener(map,"dragend",function(){
if(!isAdicionando)
{
// pegar as latitudes e longitudes finais
latf = map.getCenter().lat();
lngf = map.getCenter().lng();
var valorLatitude=(latf-lati);
var valorLongitude=(lngf-lngi);
valorLatitude = (valorLatitude <0 ? valorLatitude*-1 : valorLatitude);
valorLongitude = (valorLongitude <0 ? valorLongitude*-1 : valorLongitude);
if(valorLatitude>0.001||valorLongitude>0.001)
// recarregar radares com base nas novas coordenadas
carregaPontos();
}
});