3 回答

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

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

TA贡献1829条经验 获得超7个赞
不幸的是,这是对Google地图服务的限制。
我目前正在使用地理编码功能开发应用程序,并且正在按用户保存每个唯一地址。我根据Google地图返回的信息生成地址信息(城市,街道,州等),然后将纬度/经度信息也保存在数据库中。这样可以避免您重新编码内容,并为您提供格式正确的地址。
您要执行此操作的另一个原因是,每天对可以从特定IP地址进行地址解析的地址数量有限制。您不希望因此而导致应用程序失败。
添加回答
举报