【问题标题】:Google Maps API Geocoder doesn't return location by placeIdGoogle Maps API Geocoder 不会按 placeId 返回位置
【发布时间】:2016-12-23 19:34:51
【问题描述】:

我使用 AutocompleteService.getPlacePredictions 方法为我的下拉菜单获取自动完成项目。很多时候,该方法返回看起来像这样的“长”placeId(实际 placeId):

ChIJx55rzdwQ9YgRHB-NARRWZyuaBjAxNzExIERvbm5hIEx5bm4gRHJpdmUsIFNteXJuYSwgR0EsIFVuaXRlZCBTdGF0ZXM

如果我尝试将该地点 ID 传递给地理编码器,我会得到 ZERO_RESULTS 状态并且没有地点:

new google.maps.Geocoder().geocode(
  { placeId: "thatLongPlaceId"},
  function (results, status) { /* no place data returned */ });

但同时,如果我进行以下 GET 调用,相同的 placeId 会返回预期的地址:

https://maps.googleapis.com/maps/api/place/details/json?key=MyApiKey&placeid=ChIJx55rzdwQ9YgRHB-NARRWZyuaBjAxNzExIERvbm5hIEx5bm4gRHJpdmUsIFNteXJuYSwgR0EsIFVuaXRlZCBTdGF0ZXM

我做错了什么?使用该长地点 ID 获取地点数据的正确方法是什么?

【问题讨论】:

  • 为什么投反对票??

标签: javascript google-maps google-maps-api-3 geocoding google-geocoder


【解决方案1】:

我认为自动完成端点在今天或昨天没有返回有效的 placeid。我遇到了类似的问题。

Google Place Autocomplete API returning wrong place id

【讨论】:

  • 我明白了。谢谢!我会尝试连接到 Google 支持,让我知道。
【解决方案2】:

ZERO_RESULTS 问题不是因为位置 ID 太长。要查看这一点,请尝试使用悉尼地址的自动填充结果中的(长)地点 ID,例如

ChIJr-__yjeuEmsR3RMEBNOoUn-aBjQ0OCBQaXJyYW1hIFJvYWQsIFB5cm1vbnQsIE5ldyBTb3V0aCBXYWxlcywgQXVzdHJhbGlh

对 Geocoder.geocode 的调用应该返回 1 个结果。

长话短说,Geocoding API(google.maps.Geocoder 使用的)尚未解决https://code.google.com/p/gmaps-api-issues/issues/detail?id=11107 中的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    相关资源
    最近更新 更多