gpt4 book ai didi

javascript - 如何在不输入的情况下触发谷歌地图 places_changed 事件

转载 作者:行者123 更新时间:2023-11-29 10:48:51 26 4
gpt4 key购买 nike

这是我的代码

searchBox = new google.maps.places.SearchBox(input);
google.maps.event.addListener(searchBox,"places_changed",that.search);

我想在用户输入字符串时触发places_changed事件

最佳答案

您可以在输入更改时轻松触发事件。但是,调用 getPlaces() 时会返回 undefined。如果您确实想要输入查询的地点列表,那么您最好使用自动完成服务。

https://developers.google.com/maps/documentation/javascript/reference#AutocompleteService

input.on('keydown', function() {
google.maps.event.trigger(searchBox, 'places_changed');
});

编辑 下面是一个如何使用 AutocompleteService 的例子

<!doctype html>
<html>
<head>
<script src="https://maps.googleapis.com/maps/api/js?libraries=places&sensor=false"></script>
<script>
var init = function() {
var query = document.getElementById('query'),
autocomplete = new google.maps.places.AutocompleteService();

query.addEventListener('keyup', function() {
if (this.value.length === 0) {
return;
}
autocomplete.getPlacePredictions({input: this.value}, function(predictions, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
console.log(predictions);
}
});
});
}
</script>
</head>
<body onload="init()">
<input type="text" id="query" placeholder="Search">
</body>
</html>

如果用户正在输入内容,那么您可能不想在他们每次输入字符时都进行搜索。因此,您可以在进行搜索之前设置一个计时器。

var searchWait;
query.addEventListener('keyup', function() {
// make sure we clear any previous timers before setting a new one
clearTimeout(searchWait);

if (this.value.length === 0) {
return;
}
searchWait = setTimeout(function(searchValue) {
return function() {
autocomplete.getPlacePredictions({input: searchValue}, function(predictions, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
console.log(predictions);
}
});
}
}(this.value), 500);
});

关于javascript - 如何在不输入的情况下触发谷歌地图 places_changed 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14067787/

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