gpt4 book ai didi

google-maps - 避免对具有多个标记的自定义谷歌地图的地理编码限制

转载 作者:行者123 更新时间:2023-12-03 15:10:05 25 4
gpt4 key购买 nike

我创建了一个包含大约 150 个标记的自定义 map 。在达到地理编码限制之前,它只会绘制大约 20 个左右。

我可以在我的代码中加入什么以避免达到限制?

更新:
如何为每个请求添加一个时间延迟,比如 0.25 秒(或任何我能逃脱的最低限度)?

我尝试了一些不同的建议,但似乎无法让它们与我的代码一起使用,所以请任何示例都可以使用我的代码。

最佳答案

因此,与其在 for 循环中几乎立即发送所有请求,我认为本地理编码返回结果时发送下一个结果可能会更好。如果返回的结果是 OVER_QUERY_LIMIT , 重新发送请求,增加延迟。我还没有找到产生最少 OVER_QUERY_LIMIT 的甜蜜点超时。 's,但至少它会创建所有标记(对于有效地址)。在我的机器上完成大约需要 45 秒左右。

<!DOCTYPE html>
<html>
<head>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css"
rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var geocoder;
var map;
var infowindow = new google.maps.InfoWindow();

var places = [];
var popup_content = [ /* all your popup_content */];
var address = [/* all of your addresses */];
var address_position = 0;

var timeout = 600;

function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(52.40, -3.61);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: 'roadmap'
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
addMarker(address_position);
}

function addMarker(position)
{
geocoder.geocode({'address': address[position]}, function(results, status)
{
if (status == google.maps.GeocoderStatus.OK) {
places[position] = results[0].geometry.location;

var marker = new google.maps.Marker({
position: places[position],
map: map
});

google.maps.event.addListener(marker, 'click', function() {
if (!infowindow) {
infowindow = new google.maps.InfoWindow();
}
infowindow.setContent(popup_content[position]);
infowindow.open(map, marker);
});
}
else
{
if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT)
{
setTimeout(function() { addMarker(position); }, (timeout * 3));
}
}
address_position++;
if (address_position < address.length)
{
setTimeout(function() { addMarker(address_position); }, (timeout));
}
});
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="height: 80%; top:10px; border: 1px solid black;"></div>
</body>
</html>

关于google-maps - 避免对具有多个标记的自定义谷歌地图的地理编码限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7649155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com