Google 地图 API 显示某些位置的位置不正确,但其他位置的位置正确

Google Maps API shows incorrect location for some locations but correct for other locations

我正在使用 Google 地图 API、Google 地点 API 和自动完成功能,并且有一个地图服务,客户可以在其中输入 2 个位置并找出他们之间的距离和票价一起用地图收费。

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

不起作用的位置位于更偏远的位置,邮政编码范围很远 - 这可能就是为什么 google 无法在地图上正确定位它的原因吗?因此,我是否需要接受它不适用于每个位置输入并添加一条错误消息。问题是该位置在 google 地图网站上可用,但与 API 不相符。

有什么建议吗?

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

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