发行GMAPS V3的地理编码的几个地址



我需要使用GMAP V3的地理位置进行多个地址。首先,我只尝试了一个,它起作用了,但是当我通过JSON中的几个地址时,它只显示了第一个地址的坐标。

我尝试了此代码:

$(document).ready(function() {
getcoords(datos);                      
});


 function getcoords(datos){
 Locgoogle = new google.maps.Geocoder();
 var dataJson = eval(datos);

        for(i=0;i<10;i++){  
            var dir=dataJson[i].dir ; 
            var id=dataJson[i].id   ;
            alert(dir);
            setTimeout(function() {GoogleCall(dir,id)}, 30000);
        }

 }


function GoogleCall(dir, id) {  
 Locgoogle.geocode({
        address: dir
    }, function(results,status) {
        if (status == google.maps.GeocoderStatus.OK) {
        var lat1 = results[0].geometry.location.lat();
        var lng1 = results[0].geometry.location.lng();
        $("#testDiv").append("latitudeGoogle:" + lat1 + "<p>longitudeGoogle:" + lng1 + "</p>");
        } else {
        alert("Geocode was not successful for the following reason: " + status);
        }
    });
 }

,然后没有给我错误,但它使我感到不安的11倍相同的坐标...

两年前,Google已向其MAPS API引入了非常严格的政策。(确切地说,V3的策略 - 仍然有效-V2柔软。)地理编码API特别严格:

使用Google Geocoding API的查询限制为2,500 地理位置请求每天。[...]此外,我们强制执行一个请求限制以防止滥用服务。[...] 注意:地理编码API只能与Google地图结合使用;地理编码结果不禁止在地图上显示它们。

https://developers.google.com/maps/documentation/geocoding/#limits

Google有一个网页,其中包含建议如何处理:

https://developers.google.com/maps/articles/geocodestrat

一个策略显然是在缓存,也是一个部分中提到的。另一个正在等到下一个请求。

,如果您必须执行许多请求并且无法负担商业套餐,也许应该更改API。我在OSM API中获得了很好的经验:http://wiki.openstreetmap.org/wiki/nominatim

至少反向地理编码器对我来说非常好。您可以使用jQuery的ajax()函数进行请求,并可以执行正确的错误处理。尽管OSM具有非常柔软的速率限制,但由于较高的服务器加载等,某些请求可能会失败。

最新更新