我正在使用Google Maps API,Google Places API和自动填充功能,并拥有一个地图服务,客户可以将其放置在两个位置,并找出它们之间的距离以及地图的票价费用。
一般情况下这一直工作正常并计算正确的位置但我注意到某些位置自动完成会在文本框中显示地址但是当它被地理编码并添加到地图时会显示错误的位置(仅限于我只能假设是单元塔的位置,因为它似乎去了这个地址以寻找其他不起作用的地址。)
无法使用的位置位于距离较远的邮政编码更远的位置 - 这可能是谷歌无法在地图上正确找到它的原因吗?因此,我是否需要接受它不适用于每个位置输入并添加错误消息。问题是该位置可以在谷歌地图网站上获得,但只是不玩API的球。
有什么建议吗?
答案 0 :(得分:2)
问题出在您的代码中以下几行:
var start = document.getElementById("start").value + ', glasgow';
var end = document.getElementById("end").value + ', glasgow';
你追加',格拉斯哥'到自动完成中显示的地址。
我建议您在计算路线时直接使用从自动填充框中获取的placeId而不是地址文本。使用地点ID,您将计算用户选择的地点的确切路线:目前,附加文本并将其传递给路线服务,您可能会得到非常错误的结果。
请查看显示如何使用地点ID实现自动填充的示例: