我有一个带坐标的数组(lat,long)...... 这个阵列有大约60-80个项目......
在我的foreach周期中有......
...{
$lat = substr($xx[1],0,8);
$long = substr($xx[0],0,8);
?>
<script type="text/javascript">
// <![CDATA[
$(function() {
var geocoder = new google.maps.Geocoder();
function geocodePosition(pos,pos2) {
geocoder.geocode({
latLng: new google.maps.LatLng(pos,pos2)
}, function(responses) {
if (responses && responses.length > 0) {
console.log(responses[0].formatted_address);
} else {
console.log('Cannot determine address at this location.');
}
});
}
geocodePosition(<?php echo $lat ?>,<?php echo $long ?>);
});
// ]]>
</script>
<?php } ...
Geocoder地理编码位于最多5个坐标处,其他地址带有输出'无法确定此位置的地址。'
当我选择其中一些“无法确定”时,我会手动使用它们(只有1项= lat和long,而不是整个数组)。
那么问题出在哪里?
答案 0 :(得分:1)
你不能连续请求地址太快(被谷歌阻止),你需要在内部循环中使用小的setTimeout()。另请注意,基本API每天只能请求2500个地址,业务量超过100000 source from google.
How to avoid google map geocode limit
Setting timeout to simulate pause