Как преобразовать обычный адресный текст в объект автозаполнения Google Адресов - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть обычная адресная строка «NYS97 Luxton Lake Road, Narrowsburg, New York, USA». Как я могу создать объект google.maps.places.Autocomplete с этим адресом без указания элемента ввода? Мне это нужно в тех случаях, когда пользователь обновляет страницу с заполненной формой и видит, что входные данные уже заполнены, но приходится повторно выбирать адрес для triger place_changed и получать место из объекта автозаполнения. Вот мой код:

var autocomplete = new google.maps.places.Autocomplete(
  document.getElementById('id_address'),
  {types: ['address']});

autocomplete.addListener('place_changed', function() {
  var place = autocomplete.getPlace();
  console.log(place)
  var address_data = {
    'name': place.name,
    'formatted_address': place.formatted_address,
  };
  for (var i = 0; i < place.address_components.length; i++) {
    var addressType = place.address_components[i].types[0];
    if (componentForm[addressType]) {
      address_data[addressType] = place.address_components[i}[componentForm[addressType]];
    }
  }
  document.getElementById('id_address_data').value = JSON.stringify(address_data);
});

1 Ответ

0 голосов
/ 01 апреля 2019

Вот несколько фрагментов кода, в которых я устанавливаю URL-адрес iFrame для адреса в Картах Google:

loc - это объект местоположения, который содержит адрес.Я не включаю этот код.

let mapURL1 = "//www.google.com/maps/embed/v1/place?q=";
let mapURL2 = "&key=yourmapskey";
let mapURLaddress = loc.Street + " " + loc.City + " " + loc.State + " " + loc.Zip;

mapURLaddress = mapURLaddress.Replace(' ', '+');

document.querySelector("#mapiFrame").src= mapURL1 + mapURLaddress + mapURL2;

Надеюсь, это поможет.Вы можете сохранить адрес в файле cookie и проверить файл cookie при загрузке страницы, чтобы узнать, следует ли восстанавливать адрес на карте.

...