谷歌地图地理编码 :: 地理编码功能在 11 个请求后停止



在下面的代码中,locs包括一些来自希腊不同地区的名字。对于每个区域,我调用graphicMap 函数通过地理编码服务查找纬度和经度,并在地图上创建标记。

但是从索引 12 开始,它显示错误。

请参阅以下结果:

错误 : ΧΑΝΙΩΝ

OK : ΑΝΔΡΑΒΙΔΑΣ - ΚΥΛΛΗΝΗΣ

OK : ΒΕΡΟΙΑΣ

OK : ΑΒΔΗΡΩΝ

OK : ΑΧΑΡΝΩΝ

OK : ΑΣΤΥΠΑΛΑΙΑΣ

OK : ΡΕΘΥΜΝΗΣ

OK : ΓΑΛΑΤΣΙΟΥ

OK : ΔΕΛΦΩΝ

OK : ΒΕΛΒΕΝΤΟΥ

OK : ΖΑΓΟΡΑΣ - ΜΟΥΡΕΣΙΟΥ

OK : ΒΕΛΟΥ ΒΟΧΑΣ

例如,如果我删除记录ΑΧΑΡΝΩΝ,则 ΧΑΝΙΩΝ的值可以正常工作。

谷歌是否对通过地理编码服务的搜索设置了限制?

这是因为我没有购买 API 密钥吗?

提前感谢!

geocodeLatLong( JXMapContent , map , mapSet , graphic , graph , pins ){
/**
**** @procedure
**** Split and create table with the regions
**** Iterate table and find coordinates for each region
**/     
var locs = JXMapContent.split( "," ) , u , length_table = locs.length;
for( u = 0; u < length_table; u++ )
{
graph( locs[ u ] , map , graphic , pins );
}
}
graphicMap( _location , map , graphic , pins ){
var geocoderRequest = {
address: _location
};
graphic.geocode( geocoderRequest, function(results, status) {
if (status === google.maps.GeocoderStatus.OK){
var marker = new google.maps.Marker({
map:map,
position : results[0].geometry.location,
icon:"images/marker.png",
animation:google.maps.Animation.DROP
});
pins.push( marker );
marker.addListener('click', function() {
for (var i = 0; i < pins.length; i++) {
pins[i].setAnimation(null);
}
if( this.getAnimation() !== null) {
this.setAnimation(null);
} else {
this.setAnimation(google.maps.Animation.BOUNCE);
}
});
console.log( "OK : " + _location );
}else{
console.log( "Error : " + _location );
}
});
}

虽然您可以对谷歌地图的地理编码服务进行的 API 调用肯定会有限制,但您可能可以查看您返回的错误代码以了解发生了什么。有关您所理解的"谷歌给您错误"的更多详细信息会很棒。

从他们的文档中,您可以在此处找到错误代码 https://developers.google.com/maps/documentation/javascript/geocoding?hl=es#GeocodingStatusCodes

如果您超过配额,您会看到"OVER_QUERY_LIMIT"例如......

如果错误只是意味着该城市没有结果,也许它只是给你一个"ZERO_RESULTS",你没有正确解析其余的,你的JS失败了

最新更新