gpt4 book ai didi

javascript - 如何为 Google Places API 自动完成文本框设置默认值

转载 作者:数据小太阳 更新时间:2023-10-29 04:10:17 24 4
gpt4 key购买 nike

我正在处理一个与谷歌示例中的页面足够接近的页面 https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform它工作正常。

不过我还需要添加一项功能,就是将自动完成的值默认设置为当前用户所在的城市。

我使用以下代码在 HTML5 中使用地理定位 API 获取登录用户的城市和国家/地区。然而,挑战是让自动完成接受这个值作为它的默认值。当我尝试将值直接放入文本框中时,自动完成将其视为错误值。

navigator.geolocation.getCurrentPosition(function(pos) {
var currentLocation = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
var geocoder = new google.maps.Geocoder();
var city = "";
var country = "";
geocoder.geocode({'latLng': currentLocation}, function(results, status, from) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
for (var i = 0; i < results[0].address_components.length; i++) {
for (var b = 0; b < results[0].address_components[i].types.length; b++) {
if (results[0].address_components[i].types[b] == "administrative_area_level_1") {
city = results[0].address_components[i];
break;
}
if (results[0].address_components[i].types[b] == "country") {
country = results[0].address_components[i];
break;
}
}
}
var fromDefault = city.long_name + " - " + country.long_name;
$('#address-from').val(fromDefault);
}
}
});
},
function(error) {
alert('Unable to get location: ' + error.message);
}, options);

知道如何手动填写自动完成位置文本框的默认值吗?

最佳答案

我有同样的要求,即在 map 最初加载时设置初始位置。

我是这样做的:

作为Jon Hannah提到过,我使用自动完成服务来获取预测,然后使用第一个预测来获取地点(使用 place_id)。使用我的默认位置字符串填充自动完成输入。终于触发了place_change事件。

  this.input.nativeElement.value = this.testLocationStr;

let autocompleteService = new google.maps.places.AutocompleteService();
let request = {input: this.testLocationStr};
autocompleteService.getPlacePredictions(request, (predictionsArr, placesServiceStatus) => {
console.log('getting place predictions :: predictionsArr = ', predictionsArr, '\n',
'placesServiceStatus = ', placesServiceStatus);

let placeRequest = {placeId: predictionsArr[0].place_id};
let placeService = new google.maps.places.PlacesService(this.mapObj);
placeService.getDetails(placeRequest, (placeResult, placeServiceStatus) => {
console.log('placeService :: placeResult = ', placeResult, '\n',
'placeServiceStatus = ', placeServiceStatus);

this._handlePlaceChange(placeResult);

});
});

笨蛋:https://plnkr.co/edit/9oN6Kg?p=preview

关于javascript - 如何为 Google Places API 自动完成文本框设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35402928/

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