在这里,我使用谷歌地图,谷歌地方,路线盒库创建一个代码,以显示两个位置之间的方向,并显示靠近方向(10,20,30英里)的对象与谷歌地方。
这是演示和代码:http://jsbin.com/EVEWOta/55但是在尝试“10mi”距离后,从马德里到莫斯科我得到了这个错误:
...
...
...
OVER_QUERY_LIMIT 55:121
199
OVER_QUERY_LIMIT 55:121
OK 55:121
1268
OVER_QUERY_LIMIT 55:121
3
OVER_QUERY_LIMIT
Uncaught RangeError: Maximum call stack size exceeded
此代码:
service.nearbySearch(request, function (results, status) {
console.log(status);
if (status == 'OVER_QUERY_LIMIT') {
setTimeout(findPlaces(boxes,searchIndex),10000);
}else{
document.getElementById('side_bar').innerHTML += "bounds["+searchIndex+"] returns "+results.length+" results<br>";
for (var i = 0, result; result = results[i]; i++) {
var marker = createMarker(result);
}
if (++searchIndex < boxes.length)
setTimeout(findPlaces(boxes,searchIndex),10000);
}
});
此代码停止在框[14]中搜索。为什么呢?
在调用下一个框之前,我在代码setTimeot
中输入了10秒?
这里真正的问题是什么?
答案 0 :(得分:0)
你必须将findPlaces
的调用包装成一个函数,否则将立即调用该函数而不是所需的延迟:
setTimeout(function(){findPlaces(boxes,searchIndex);},10000);