В настоящее время невозможно фильтровать прогнозы автозаполнения только по почтовым индексам.Взгляните на этот открытый запрос функции в системе отслеживания проблем Google.
Но вы можете выбрать для отображения только почтовый индекс для выбранного места в окне поиска, вместо этогополного адреса.В вашем примере вы можете изменить прослушиватель place_changed
следующим образом:
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
$('#lat').val(place.geometry['location'].lat());
$('#long').val(place.geometry['location'].lng());
let postcode;
for (let i = 0; i < place.address_components.length; i++) {
let types = place.address_components[i].types;
for (let type of types) {
if (type === "postal_code") {
postcode = place.address_components[i].long_name;
}
}
}
if (!postcode) {
postcode = place.formatted_address;
}
$('#autocomplete_search').val(postcode);
});
Working jsfiddle (добавьте свой ключ API для его запуска).
С помощьювыше реализации кода, теперь, если вы введете «Nevile Road» в текстовое поле и выберете прогноз первого места, Nevile Road, Salford, UK
, вы получите его postal_code_prefix
в качестве единственного значения, то есть M7
.
Аналогичным образом, если вы начнете вводить полный почтовый индекс, например, «M7 3PP», вы получите Nevile Road, Salford M7 3PP, UK
предложение места, и выбор его даст вам M7 3PP
.
Однако обратите внимание, чтоэто не всегда будет работать, так как есть много адресов, которые не имеют одного, определенного почтового индекса.Например, «Лондон, Великобритания» вообще не возвращает никакого почтового индекса (как, очевидно, не может).
Надеюсь, это поможет!