我有一个用于地址搜索的输入,该输入调用了Google API以自动完成。可以,但是我想在查询上添加会话令牌,但是我不知道该怎么做。
我在互联网上到处搜索,但只看到: “使用var sessionToken = new google.maps.places.AutocompleteSessionToken();生成会话令牌”。 好的,但是我不知道将变量放在哪里:/
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=places&key=MY_API_KEY"></script>
<form>
<label>Address</label>
<input id="user_input_autocomplete_address" placeholder="Votre adresse...">
</form>
<script>
function initializeAutocomplete(id) {
var element = document.getElementById(id);
if (element) {
var autocomplete = new google.maps.places.Autocomplete(element, { types: ['address'] });
autocomplete.setComponentRestrictions({'country': ['fr']});
google.maps.event.addListener(autocomplete, 'place_changed', onPlaceChanged);
}
}
function onPlaceChanged() {
var place = this.getPlace();
console.log(place);
for (var i in place.address_components) {
var component = place.address_components[i];
for (var j in component.types) {
var type_element = document.getElementById(component.types[j]);
if (type_element) {
type_element.value = component.long_name;
}
}
}
}
google.maps.event.addDomListener(window, 'load', function() {
initializeAutocomplete('user_input_autocomplete_address');
});
</script>
正在运行,我具有自动完成功能,但是此脚本未使用唯一的会话令牌。因此,对于输入的每个字母,每个查询都使用不同的查询。
答案 0 :(得分:2)
实际上sessionToken
是正确的,而不是sessiontoken
。
https://developers.google.com/maps/documentation/javascript/reference/places-autocomplete-service#AutocompletionRequest.sessionToken
答案 1 :(得分:0)
您正在使用自动完成小部件,该小部件可自动处理会话。您无需根据Google's documentation自己生成会话。
但是,如果您想使用AutocompleteService类,则确实需要使用google.maps.places.AutocompleteSessionToken()。请参阅上方链接中的Google代码示例,以了解其添加方式/位置:
// Create a new session token.
var sessionToken = new google.maps.places.AutocompleteSessionToken();
// Pass the token to the autocomplete service.
var autocompleteService = new google.maps.places.AutocompleteService();
autocompleteService.getPlacePredictions({
input: 'pizza near Syd',
sessionToken: sessionToken
},
displaySuggestions);
希望这会有所帮助!
答案 2 :(得分:-1)
上面的答案有一个小错误。而不是sessionToken
,它应该是sessiontoken
。
autocompleteService.getPlacePredictions({
input: 'pizza near Syd',
sessiontoken: sessionToken
},
displaySuggestions);
https://developers.google.com/places/web-service/session-tokens