【发布时间】:2016-03-05 12:37:23
【问题描述】:
我的街道地址格式为
1 Rue du Four, 60200 COMPIEGNE, France
2 Rue de Lancry, 60200 COMPIEGNE, France
并且地址列表可以达到100 000.00万。
目前我正在使用 google gecode,但它有每天 2500 个限制。我不断收到此错误。
google.maps.GeocoderStatus.OVER_QUERY_LIMIT
然后我设法通过如下所示的超时来做到这一点
函数代码地址(markersAddress) {
var address = markersAddress.address;
var name = markersAddress.name;
var info = markersAddress.info;
geocoder.geocode({'address': address}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latLng = results[0].geometry.location;
} else {
if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
setTimeout(function() { codeAddress(markersAddress); }, (timeout * 3));
} else {
console.log('Geocode was not successful for the following reason: ' + status);
}
}
});
但是,当有 100 000 条记录时,此方法会导致浏览器速度变慢。那么有没有更好的方法来使用 api 获取地理编码?
【问题讨论】:
-
Google 的地理编码几乎是最好的。如果您每天需要向它发出超过 2,500 个请求,那么无论您使用谁,您都将不得不使用付费服务。如果您真的需要在地图上显示 100,000 个项目,我建议您考虑获得一个 Google Maps Premier 帐户,尽管这绝对不应该是这样。实施某种过滤器来减少这个数字是值得的。
-
100,000 条记录就是您的全部问题。将该数字减少到可以管理的程度,或use your own database to cache results for a few days or weeks。
-
您厌倦了有限制的免费服务?您可能应该降低您的期望,或者为没有限制的服务付费。
-
在提交嵌入服务的设计之前,我建议您阅读使用条款……而不仅仅是向下滚动并单击接受按钮。事实上,在这种特定情况下,您可能应该这样做(阅读部分)。
标签: javascript php jquery google-maps google-maps-api-3