0

在这里,我使用谷歌地图、谷歌地点、路线库库创建了一个代码,以显示两个位置之间的方向,并用谷歌地点显示方向(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在调用下一个框之前用 10s 输入代码?

这里真正的问题是什么?

4

1 回答 1

0

您必须将调用包装findPlaces到一个函数中,否则该函数将立即被调用,而不是所需的延迟:

setTimeout(function(){findPlaces(boxes,searchIndex);},10000);
于 2013-09-01T22:22:50.627 回答