Google地图自动填充提示与返回的位置不匹配

时间:2017-09-14 10:49:29

标签: google-maps google-maps-api-3

Google地图自动填充几乎在所有情况下都有效,但在一个地址上表现得很奇怪。

JSFiddle,感谢@geocodezip,显示了这个问题。

这类似于this issue,除了该问题没有返回任何地方。这将返回一个类似命名的地方,但位于不同的位置。

建议框中会显示正确的地址,但place_changed事件的地址不同。这两个地址彼此相距很远。

Differing results for autocomplete

可以看出,这在自动完成演示中是可重现的,因此我认为这不是一个实现问题。有没有人见过这种行为并设法修复它?

此外,通过AutocompleteService请求原始自动填充建议返回的地址的查询预测会返回ZERO_RESULTS

new google.maps.places.AutocompleteService();
    service.getQueryPredictions({ input: '77 Main Road, Crowthorne AH, Sandton, South Africa' }, function(predictions, status) {
      if (status != google.maps.places.PlacesServiceStatus.OK) {
        alert(status);
        return;
      }

      predictions.forEach(function(prediction) {
        console.log(prediction);

      });
    });

1 个答案:

答案 0 :(得分:2)

您遇到的问题已在Google问题跟踪器中报告。您可以在这里查看并添加评论:

https://issuetracker.google.com/issues/35830687

让我解释一下是什么问题。如果您查看地点ID文档,您会看到地方ID有两个选项。

https://developers.google.com/places/place-id#id-overview

短地点ID(如ChIJrTLr-GyuEmsRBfy61i59si0)和长地点ID(如EisxMyBNYXJrZXQgU3RyZWV0LCBXaWxtaW5ndG9uLCBOQyAyODQwMSwgVVNB)。当您看到短地址ID表示Google在其数据库中具有该地址的确切功能时,当您看到长地点ID时,表示Google没有确切的功能并尝试插入地址。有时插值在自动填充和现场详细信息中的工作方式不同,因此在这种情况下,您会观察到问题中描述的问题并报告为bug 35830687

现在,让我们检查一下您的示例中的地点ID。我执行以下地方自动填充请求:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=77%20Main%20Road%2C%20Crowthorne%20AH&key=API_KEY

我可以在回复中看到以下文字

"predictions":[
  {
    "description":"77 Main Road, Crowthorne AH, Sandton, South Africa",
    "id":"a0ab043870d062bad00d5ce2ed91faaf7250efbe",
    "matched_substrings":[
      {
        "length":12,
        "offset":0
      },
      {
        "length":13,
        "offset":14
      }
    ],"place_id":"EjI3NyBNYWluIFJvYWQsIENyb3d0aG9ybmUgQUgsIFNhbmR0b24sIFNvdXRoIEFmcmljYQ",
....

地点ID是长EjI3NyBNYWluIFJvYWQsIENyb3d0aG9ybmUgQUgsIFNhbmR0b24sIFNvdXRoIEFmcmljYQ,这意味着地址已被插值。

最直接的解决办法可能是为主要道路,Crowthorne AH,南非桑顿的#39;创建一个确切的地址。只有一种方法可以向Google报告缺失的数据,并在以下支持帮助中对其进行了描述:

https://support.google.com/maps/answer/3094045

您应该发送反馈,让Google知道地址' 77 Main Road,Crowthorne AH,Sandton,South Africa'不见了。否则你应该等到bug 35830687解决了。

我希望这能解释你的怀疑!