Mic*_*out 88 javascript google-maps geocoding
使用谷歌地理编码V3,如果我尝试地理编码20个地址,除非我次地为〜间隔1秒,我得到一个OVER_QUERY_LIMIT,但随后它需要20秒全部放在我的标记之前.
除了预先存储坐标之外,还有其他方法吗?
Pas*_*TIN 84
不,没有其他任何方式:如果您有许多位置并希望在地图上显示它们,最佳解决方案是:
当然,考虑到您创建/修改位置的次数比您对位置的咨询要少得多.
是的,这意味着在保存位置时你将不得不做更多的工作 - 但它也意味着:
gab*_*ess 20
实际上,您不必为每个请求等待一整秒.我发现如果我在每个请求之间等待200毫秒,我就可以避免OVER_QUERY_LIMIT响应并且用户体验可以通过.使用此解决方案,您可以在4秒内加载20个项目.
$(items).each(function(i, item){
setTimeout(function(){
geoLocate("my address", function(myLatlng){
...
});
}, 200 * i);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是Google地图服务的限制.
我目前正在使用地理编码功能处理应用程序,并且我将基于每个用户保存每个唯一地址.我根据谷歌地图返回的信息生成地址信息(城市,街道,州等),然后将纬度/经度信息保存在数据库中.这可以防止您不得不重新编码,并为您提供格式良好的地址.
您想要这样做的另一个原因是因为可以从特定IP地址进行地理编码的地址数量每日限制.出于这个原因,您不希望您的应用程序因某个人而失败.
归档时间: |
|
查看次数: |
105385 次 |
最近记录: |