Выводить город / город на входе, а не на полное место, используя автозаполнение - PullRequest
0 голосов
/ 22 ноября 2018

В настоящее время я использую регионов для автозаполнения ввода мест.Ранее я использовал города , прежде чем регионы , так как это выводило город / город на входе.

Но теперь я хочу иметь возможность вводить почтовый индекс или город / город и по-прежнему выводить только город / город.

По сути, я хочу использовать регионов , но выводим города в элемент ввода.

Примеры ниже:

Input: London
Actual Output: London, UK (This is fine)
Desired Output: London, UK 

Input: SW1A
Actual Output: London SW1A, UK (This is not fine)
Desired Output: London, UK 

Input: NW3 7JR
Actual Output: Hampstead Lane, London NW3 7JR, UK (This is not fine)
Desired Output: London, UK

Javascript, в настоящее время использующий:

//Function for Places Autocomplete
function activatePlacesSearch(){
    var input = document.getElementById('id_local_area');
    var options = {
        types: ['(regions)'],
        componentRestrictions: {country: 'gb'}};
    var autocomplete = new google.maps.places.Autocomplete(input, options);
}

1 Ответ

0 голосов
/ 29 ноября 2018

Короче говоря, этого никогда не произойдет.

Поместить автозаполнение всегда будет повторять ввод обратно пользователю, поэтому, если введена часть почтового индекса, по крайней мере, эта часть почтового кода будет частью прогноза.С помощью параметра types = вы можете ограничить прогнозы, но в приведенных выше примерах это только приведет к тому, что прогнозы не будут возвращаться.

Есть несколько вещей, которые вы можете сделать:

  1. Взятьstructured_formatting.secondary_text, который, хотя и не всегда соответствует требуемому уровню "Лондон, Великобритания", всегда доступен в ответе автозаполнения места, поэтому нет необходимости даже запрашивать подробности для идентификатора места.
  2. Запросите сведения об этом идентификаторе места (из API геокодирования или сведений о месте) и измените геокодирование его местоположения в API геокодирования.Это даст вам все политические особенности, которые содержат последние.Тогда вам нужно быть осторожным в том, какой из них представляет «город» или что вы хотите.См. Объяснение по этому поводу в https://google -developers.appspot.com / карты / документация / javascript / examples / place-autocomplete-addressform
...