- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用谷歌地图绘制存储在数据库中的各个位置之间的路径。
在通过 15 个地理点(任何超过 10 个)时,我的状态为 OVER_QUERY_LIMIT。
我知道,当我们每秒经过超过 10 个地理点时,我们需要给出几毫秒的时间间隙。
我的问题是如何做到这一点..在哪里添加 sleep() 或 setTimeout() 或任何其他时间延迟代码
我已经尝试了SO提供的所有可能性,但失败了。因为他们只是说在请求之间给出一些时间间隔,但如何做到这一点?
代码片段:
var markers = [
{
"title": 'abc',
"lat": '17.5061925',
"lng": '78.5049901',
"description": '1'
},
{
"title": 'abc',
"lat": '17.50165',
"lng": '78.5139204',
"description": '2'
},
.
.
.
.
.
{
"title": 'abc',
"lat": '17.4166067',
"lng": '78.4853992',
"description": '15'
}
];
var map;
var mapOptions = {
center: new google.maps.LatLng(markers[0].lat, markers[0].lng),
zoom: 15 ,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var path = new google.maps.MVCArray();
var service = new google.maps.DirectionsService();
var infoWindow = new google.maps.InfoWindow();
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
var poly = new google.maps.Polyline({
map: map,
strokeColor: '#000000'
});
var lat_lng = new Array();
for (var i = 0; i <= markers.length-1; i++)
{
var src = new google.maps.LatLng(markers[i].lat, markers[i].lng);
var des = new google.maps.LatLng(markers[i+1].lat, markers[i+1].lng);
poly.setPath(path);
service.route({
origin: src,
destination: des,
travelMode: google.maps.DirectionsTravelMode.DRIVING
},
function (result, status)
{
if (status == google.maps.DirectionsStatus.OK)
{
for (var i = 0, len = result.routes[0].overview_path.length;
i < len; i++)
{
path.push(result.routes[0].overview_path[i]);
}
}
else{
if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT)
{
document.getElementById('status').innerHTML +="request failed:"+status+"<br>";
}
}
});
}
});
结果图(OVER_QUERY_LIMIT):
最佳答案
Google 推荐:
Lowering usage, by optimizing applications to use the web services more efficiently.
Increasing usage limits, when possible, by purchasing additional allowance for your Google Maps API for Work license.
还有HERE有一些解决方法似乎适合您的需要
if status == "OVER_QUERY_LIMIT":
time.sleep(2)
这是用 Phyton 编写的,但您可以将其用作 Pseudocode ,它很容易阅读:
url = "MAPS_API_WEBSERVICE_URL"
attempts = 0
success = False
while success != True and attempts < 3:
raw_result = urllib.urlopen(url).read()
attempts += 1
# The GetStatus function parses the answer and returns the status code
# This function is out of the scope of this example (you can use a SDK).
status = GetStatus(raw_result)
if status == "OVER_QUERY_LIMIT":
time.sleep(2)
# retry
continue
success = True
if attempts == 3:
# send an alert as this means that the daily limit has been reached
print "Daily limit has been reached"
在您的 javascript
代码中,只需设置超时即可:
if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT)
{
setTimeout(3000);
}
关于javascript - 如何处理 OVER_QUERY_LIMIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29411338/
当我尝试获取两点之间的路线时,我收到如下错误消息。我重新生成了我的 API key ,但没有用。 { "error_message" : "You have exceeded your rate-
这个问题已经有答案了: OVER_QUERY_LIMIT in Google Maps API v3: How do I pause/delay in Javascript to slow it do
当我尝试在“地点自动完成”中搜索时,我得到了无法加载搜索结果日志说 "Error while autocompleting: OVER_QUERY_LIMIT" 我启用了 https://consol
我正在使用反向地理编码填写四个表单字段。表单填写正确,但随后我收到一条错误消息,指出 OVER_QUERY_LIMIT。在检查 Chrome 的 JS 控制台时,我发现在收到错误消息之前已经进行了五个
我了解 Google 将请求限制为每天 2,500 次...但在 EARTH 上我无法发出这么多请求,我只是不断收到“OVER_QUERY_LIMIT” $street_no = get_post_m
我正在尝试使用循环显示一些标记(大约 10 到 15 个)并显示它们之间的方向(路线)。但是在执行代码时,“Over_Query_Limit 错误”发生并通过警告框显示在网页。 map 显示正确但未显
我使用的是单一来源。当我检查谷歌地图文档中给出的示例中的样本纬度经度值时,它正在工作。但是,如果我更改坐标,则无法返回“OVER_QUERY_LIMIT”。 下面的代码运行良好 origin1 = n
我的应用程序从一个每隔几个小时更新一次的文件中获取地址,并对它们进行地理编码并将它们放在谷歌地图上。 我收到了 OVER_QUERY_LIMIT 状态,即使我从前一天起就没有使用过它,并且我在每个查询
这个问题已经有答案了: OVER_QUERY_LIMIT in Google Maps API v3: How do I pause/delay in Javascript to slow it do
我在我的项目中使用 PlacesAPI。在请求 5 到 6 次之前,它一直运行良好。但是,在发布一些请求后突然收到 OVER_QUERY_LIMIT 错误。我试图通过创建新的 api key 来替换
Google 的地理编码 API 服务每天允许 2,500 次免费调用,当您达到限制时,状态会返回 OVER_QUERY_LIMIT。 有办法在调用电话之前检查状态吗?如果超出限制,我想在网站上隐藏该
我尝试在每个循环中使用setTimeout:$("#dropdown option").each(function ()但由于某种原因不起作用,这里是mu代码: function initialize
我多次调用 google web 服务获取距离,但现在无法调用它,因为收到错误: OVER_QUERY_LIMIT 下次我会在 10 次通话时设置暂停 5 秒。 但是我会被这样锁定多久? 最佳答案 每
Google map 在某些情况下会返回 OVER_QUERY_LIMITS 状态。我正在寻找有关这些条件的任何详细信息。 我可以通过在延迟后重新提交路线服务路线请求来处理状态。通过使用多个“魔数(M
我有 20 个需要地理编码的地址。它们都是有效的。当我尝试对它们进行地理编码时,我得到了 OVER_QUERY_LIMIT。我还在 map 上放置了标记,每次我在 map 上得到不同数量的标记。我找到
使用 Google Geocoder v3,如果我尝试对 20 个地址进行地理编码,我会得到一个 OVER_QUERY_LIMIT 除非我将它们的时间间隔大约 1 秒,但是在我的标记全部放置之前需要
我正在使用具有驱动程序跟踪模块的项目。 我在我的数据库中经纬度,我正在获取它的日期和用户名。 当前的实现在大约 10 lat/long 下运行良好。但是当它有更多的纬度/经度时,它只是在前 10 个点
我在从我的应用程序访问谷歌地图时遇到问题,当我从java脚本循环发送超过10个请求时,我从地理编码器服务中得到了OVER_QUERY_LIMIT异常。有什么方法可以摆脱这个问题,我尝试使用 setIn
我在 android 应用程序中使用 google place text search api https://maps.googleapis.com/maps/api/place/textsearc
我有一个典型的问题。 我正在点击 Place search API 并获取结果。 之后,我需要显示每个要显示的地点的行驶距离。 为此,我使用了 10 次 Google API 以获取 10 个行驶距离
我是一名优秀的程序员,十分优秀!