【问题标题】:How do I convert regular address text to Google Places autocomplete object如何将常规地址文本转换为 Google 地方信息自动完成对象
【发布时间】:2019-08-23 00:37:59
【问题描述】:

我有常规地址字符串“NYS97 Luxton Lake Road, Narrowsburg, New York, USA”。如何在不指定输入元素的情况下使用此地址创建 google.maps.places.Autocomplete 对象?当用户使用填写表单刷新页面并看到输入已填写但必须重新选择地址以触发 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);
});

【问题讨论】:

  • 我相信浏览器自带自动完成功能,所以先检查一下
  • @rodude123 你是对的。但我需要使用这个浏览器自动完成文本来创建谷歌自动完成对象。

标签: javascript google-places-api googleplacesautocomplete


【解决方案1】:

以下是我将 iFrame URL 设置为 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 以查看是否应恢复地图上的地址。

【讨论】:

    猜你喜欢
    • 2012-10-25
    • 2018-06-27
    • 2015-07-17
    • 2020-01-09
    • 2019-09-14
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 2016-07-26
    相关资源
    最近更新 更多