如何在未收到OVER_QUERY_LIMIT响应的情况下对20个地址进行地址解析?

使用Google Geocoder v3,如果我尝试对20个地址进行地理编码,除非得到的间隔时间是1秒左右,否则我将获得OVER_QUERY_LIMIT,但是所有标记都需要20秒才能放置完。

除了预先存储坐标以外,还有其他方法吗?


一只名叫tom的猫
浏览 1745回答 3
3回答

幕布斯7119047

不,实际上没有其他方法:如果您有很多位置,并希望在地图上显示它们,最好的解决方案是:创建位置后,使用地理编码器获取纬度+经度将这些存储在数据库中,以及地址旁边并在显示地图时使用存储的纬度和经度。当然,这是因为考虑到与位置咨询相比,您对位置的创建/修改要少得多。是的,这意味着您在保存位置时必须做更多的工作-但这还意味着:您将可以按地理坐标进行搜索即“ 我想要一个列表,这些列表是我现在所在的位置附近 ”显示地图会更快即使上面有20多个位置哦,还有(最后但并非最不重要):这将起作用;-)您不太可能在N秒内达到X个地理编码器调用的限制。而且您不太可能达到每天Y个地理编码器通话的限制。

鸿蒙传说

实际上,您不必为每个请求都等待一秒钟。我发现,如果我在每个请求之间等待200毫秒,就可以避免OVER_QUERY_LIMIT响应,并且用户体验是可以通过的。使用此解决方案,您可以在4秒钟内加载20个项目。$(items).each(function(i, item){  setTimeout(function(){    geoLocate("my address", function(myLatlng){      ...    });  }, 200 * i);}

千巷猫影

不幸的是,这是对Google地图服务的限制。我目前正在使用地理编码功能开发应用程序,并且正在按用户保存每个唯一地址。我根据Google地图返回的信息生成地址信息(城市,街道,州等),然后将纬度/经度信息也保存在数据库中。这样可以避免您重新编码内容,并为您提供格式正确的地址。您要执行此操作的另一个原因是,每天对可以从特定IP地址进行地址解析的地址数量有限制。您不希望因此而导致应用程序失败。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript