我有谷歌地图和两个输入。它们都使用自动完成功能,如下所示:
//first input autocomplete
var input1 = (document.getElementById('start'));
var autocomplete1 = new google.maps.places.Autocomplete(input1);
autocomplete1.bindTo('bounds', map);
//second input autocomplete
var input2 = (document.getElementById('end'));
var autocomplete2 = new google.maps.places.Autocomplete(input2);
autocomplete2.bindTo('bounds', map);
填写完这两个输入后,我将使用 Directions API 显示它们之间的最短路径:
function calcRoute() {
var start = document.getElementById("start").value;
var end = document.getElementById("end").value;
var request = {
origin:start,
destination:end,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
}
});
}
我的输入如下所示:
<input type="text" id="start" onchange="calcRoute();" />
<input type="text" id="end" onchange="calcRoute();" />
问题:
如果我在这些输入中键入完整地址,一切都会正常工作,例如:
德国柏林和德国汉堡(我猜这是因为输入的每个字母都会触发 onchange())。
但是当我输入:
柏林,德国,然后是汉堡 > 从 Google 自动完成下拉列表中单击汉堡
它没有显示汉堡,而是显示了一个叫汉布的小镇。
有什么办法可以解决吗?