【问题标题】:Google Maps API shows incorrect location for some locations but correct for other locationsGoogle Maps API 显示某些位置的位置不正确,但其他位置显示正确
【发布时间】:2016-09-08 04:50:03
【问题描述】:

我正在使用 Google Maps API、Google Places API 和 Autocomplete,并且有一个地图服务,客户可以在其中输入 2 个位置,并通过地图找出它们之间的距离和票价。

一般来说,这工作正常并计算正确的位置,但我注意到某些位置自动完成会在文本框中显示地址,但是当它被地理编码并添加到地图时,它会显示不正确的位置(仅我只能假设是手机信号塔的位置,因为它似乎会去这个地址寻找其他不起作用的地址)。

不起作用的位置位于更偏远的位置,并且邮政编码很远 - 这可能是谷歌无法在地图上正确定位它的原因吗?因此,我是否需要接受它不适用于每个位置输入并添加错误消息。问题是该位置可在谷歌地图网站上找到,但无法使用 API。

有什么建议吗?

【问题讨论】:

  • 您能否展示一个示例查询来证明这一点?
  • 好的,例如 Glasgow Airport 到 Cameron House Loch Lomond, Alexandria, West Dunbartonshire G83 8QZ 查找我正在处理的网站here

标签: google-maps google-maps-api-3 autocomplete google-places-api google-geocoding-api


【解决方案1】:

问题在于您的代码中的以下几行:

var start = document.getElementById("start").value + ', glasgow';

var end = document.getElementById("end").value + ', glasgow';

您将 ', glasgow' 附加到自动完成中显示的地址。

我建议在计算路线时使用直接从自动完成框中获取的 placeId,而不是地址文本。使用地点 ID,您将为用户选择的地点计算准确的路线:目前,附加文本并将其传递给路线服务可能会得到非常错误的结果。

请查看显示如何使用地点 ID 实现自动完成的示例:

http://jsbin.com/ponoyod/4/edit?html,output

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-27
    • 2016-01-03
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多