【问题标题】:Reverse GeoCode by Place ID Pass Array Values按地点 ID 传递数组值反转地理编码
【发布时间】:2017-11-12 01:36:15
【问题描述】:

我想传入一组 google place id 值并将每个地址的格式化地址输出到 google 地图标记(多个标记)上。我的问题和这个类似:Multiple markers Google Map API v3 from array of addresses and avoid OVER_QUERY_LIMIT while geocoding on pageLoad

但最大的不同是我只有地点 ID,没有任何地址。我希望将其转换为地址,以便我可以从其他 stackoverflow 方法使用上面链接中显示的方法。

到目前为止,我尝试使用 getJSon 方法来检索地点 id url:

$.getJSON('https://maps.googleapis.com/maps/api/place/details/json?placeid=somethingsomething&key=mykey, null, 函数(数据){ var p = data.results[0].geometry.location;

  var latlng = new google.maps.LatLng(p.lat, p.lng);
  new google.maps.Marker({
      position: latlng,
      map: map,


  });

});

这似乎不起作用,因为由于 CORS 问题,我无法检索 json 对象。如果我格式化为 JSONP 格式的 ajax 调用,它会引发意外的令牌错误(因为字符串本身是 JSON)。我只是在寻找一种简单的方法来获取 id 值,将其放入函数中,然后吐出格式化的地址。谢谢!

【问题讨论】:

    标签: javascript json ajax google-maps google-maps-api-3


    【解决方案1】:

    为了避免 CORS 问题,您必须使用 Maps JavaScript API 的 places library。地点库具有place details 功能,允许获取有关地点 ID 的详细信息。您还可以使用 Maps JavaScript API 的reverse geocoding 服务,该服务允许通过其地点 ID 获取地址。

    您应该注意的重要一点是,您只能在每个请求中传递一个地点 ID,并且 Maps JavaScript API 中的用户会话具有 limits。最初您有一个包含 10 个请求的存储桶,一旦您使用了存储桶的所有请求,您每秒可以执行 1 个请求。

    如果您需要批量反向地理编码,Google 建议在服务器端代码中进行。在这种情况下,您可以使用Geocoding API 网络服务,而usage limits 将是每秒 50 个请求。

    您可以轻松地从上述问题更改代码,将请求中的 address 参数更改为相应的地点 ID 参数。只需阅读我之前提到的文档即可。

    我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      • 2015-10-31
      相关资源
      最近更新 更多