Boa tarde,
Estou fazendo um site e nele rodo um mapa do google para marcar alguns endereços de acordo com a busca e me retornar a distancia em km da casa do usuario do site até os locais marcados no mapa, até ae tudo bem, ja consegui fazer tudo isso, porem estou usando a api javascript v3 do maps e ela tem algumas limitações, como por exemplo nao me retornar mais que 10 resultados de quilometragem ou marcar mais que 10 localizações no mapa, isso por segundo se nao me engano, nao consegui achar solução para este probema, porem li algo que se eu fizer isso no lado do servidor (usando java no meu caso) ao invés do client side como estou fazendo agora, o meu limite de request por segundo ao maps sobe de 10 para 2500, mas nao consegui achar nenhum exemplo nem nada que me ajude a programar o server side disso, algum de voces ja teve experiencia com isso, teria como me ajudar?
Tem como fazer sim a grande sacada é fazer um timeout no javascript .
function localizarEndereco(enderecoLocaliza, enderecoApresenta, map, markerClusterer, recurso, nome, especialidade, telefone) {
geocoder.geocode( { 'address': enderecoLocaliza}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
//map.setCenter(results[0].geometry.location);
icon = verificaIconeRecurso(recurso);
var html= '<div style="border-bottom: 1px dotted #CCCCCC; margin-right:10px;"><b style="color: #0D7040">'+nome+'</b><br/><br/><b style="color: #E55300">'+especialidade+'</b><br/><br/>'+enderecoApresenta.replace("-","<br/>")+'<br/>'+telefone+'<br/><br/></div>';
var marker = new google.maps.Marker({
map: map,
animation: google.maps.Animation.DROP,
icon: icon,
position: results[0].geometry.location,
html: html
});
var infowindow = new google.maps.InfoWindow({
content: html
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
markerClusterer.addMarker(marker, true);
} else if (status === google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
[b] setTimeout(function() {
localizarEndereco(enderecoLocaliza, enderecoApresenta, map, markerClusterer, recurso, nome, especialidade, telefone);
}, 1);[/b]
} else {
alert("Geocode was not successful for the following reason: "+status);
}
});
}
Nesse exemplo não estou procurando distancia de pontos e sim enderecos , mais da pra você ter um noção de como funciona o TimeOut que falei.
Ah obrigado pela ajuda, mas eu ja estou utilizando este metodo, após eu postar esta duvida aqui no guj achei um forum onde dizia isso tmb e apliquei no meu codigo porem ficou meio estranho, pq o desempenho cai, o mapa leva uns 5 segundos ou mais para colocar todos os pinos pois o resultado da busca retorna uns 50 resultados e como da over quey a cada 10 resultados entao ele executa o timeout algumas vezes ae a pagina fica la adicionando pino no mapa durante um certo tempo, o q deixa um tanto estranho o carregamento, levando em conta q eu ordeno a minha lista de resultados de acordo com a distancia em km de um ponto fixo para cada endereço encontrado na busca, a minha odenação da lista fica sendo executada e refeita na tela ate acabarem os timeouts. Estou pensando em paginar meus resultados de 10 em 10 e ae carrego somente os 10 endereços de cada pagina e evito os over querys, te alguma outra sugestão?