gpt4 book ai didi

google-maps - 谷歌地图 - 自动完成和方向 API - 触发下拉列表的 onchange() ?

转载 作者:行者123 更新时间:2023-12-01 06:14:36 25 4
gpt4 key购买 nike

我有谷歌地图和两个输入。他们都使用自动完成,像这样:

//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())。

但是当我输入时:

柏林,德国,然后Hamb > 从 Google 自动完成下拉列表中点击 Hamburg

它没有显示汉堡,它显示了一个名为 Hamb 的小镇。

有什么办法可以解决吗?

screen

最佳答案

autocompleteTo = new google.maps.places.Autocomplete(
(document.getElementById('end')),
{types: ['geocode']}
);
google.maps.event.addListener(autocompleteTo, 'place_changed', function () {
calcRoute();
});

监听 place_changed 事件比在输入字段的每次更改时触发路由重新计算更有效。

关于google-maps - 谷歌地图 - 自动完成和方向 API - 触发下拉列表的 onchange() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18690444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com