为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只名叫tom的猫 2019-10-25 10:27:33
使用Google Geocoder v3,如果我尝试对20个地址进行地理编码,除非得到的间隔时间是1秒左右,否则我将获得OVER_QUERY_LIMIT,但是所有标记都需要20秒才能放置完。除了预先存储坐标以外,还有其他方法吗?
查看完整描述

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

不,实际上没有其他方法:如果您有很多位置,并希望在地图上显示它们,最好的解决方案是:

  • 创建位置后,使用地理编码器获取纬度+经度

  • 将这些存储在数据库中,以及地址旁边

  • 并在显示地图时使用存储的纬度和经度。

当然,这是因为考虑到与位置咨询相比,您对位置的创建/修改要少得多。


是的,这意味着您在保存位置时必须做更多的工作-但这还意味着:

  • 您将可以按地理坐标进行搜索

    • 即“ 我想要一个列表,这些列表是我现在所在的位置附近 ”

  • 显示地图会更快

    • 即使上面有20多个位置

  • 哦,还有(最后但并非最不重要):这将起作用;-)

    • 您不太可能在N秒内达到X个地理编码器调用的限制。

    • 而且您不太可能达到每天Y个地理编码器通话的限制。


查看完整回答
反对 回复 2019-10-25
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

实际上,您不必为每个请求都等待一秒钟。我发现,如果我在每个请求之间等待200毫秒,就可以避免OVER_QUERY_LIMIT响应,并且用户体验是可以通过的。使用此解决方案,您可以在4秒钟内加载20个项目。


$(items).each(function(i, item){


  setTimeout(function(){


    geoLocate("my address", function(myLatlng){

      ...

    });


  }, 200 * i);


}


查看完整回答
反对 回复 2019-10-25
?
千巷猫影

TA贡献1829条经验 获得超7个赞

不幸的是,这是对Google地图服务的限制。

我目前正在使用地理编码功能开发应用程序,并且正在按用户保存每个唯一地址。我根据Google地图返回的信息生成地址信息(城市,街道,州等),然后将纬度/经度信息也保存在数据库中。这样可以避免您重新编码内容,并为您提供格式正确的地址。

您要执行此操作的另一个原因是,每天对可以从特定IP地址进行地址解析的地址数量有限制。您不希望因此而导致应用程序失败。


查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 1744 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号