从Google maps api中提取信息

时间:2017-09-19 02:20:34

标签: google-maps google-maps-api-3

我正致力于构建一个简单的表单,该表单将作为电子邮件发送,并将使用Google的API作为地址字段。我已经阅读了有关使用自动完成部分的信息,其中用户开始输入地址并推荐一个地址。因此,如果我开始输入12 West,它会建议并允许我选择12 Westmount Drive,Cayley,n2n 5h8,Alberta,Canada。

我想知道后端是否有可能将此信息拆分为街道,城市,邮政编码,省份和国家/地区。这样我就可以在电子邮件中包含完整地址,然后在单独的段落中使用街道和城市信息。

2 个答案:

答案 0 :(得分:2)

从Google返回的地址中提取特定字段绝对是可能的。

假设您使用Places Autocomplete,您将可以访问PlaceResult个对象。 PlaceResult对象将具有一个名为address_components的属性,该属性是GeocoderAddressComponent个对象的数组。

每个GeocoderAddressComponent都有一个types数组,其中包含组件的名称,如果有多种描述方式,则有多个名称。可以在here找到示例address_components对象。

您可以遍历address_components数组中的所有元素,查找名称routesublocality,这将分别为街道和城市提供单独的值。

答案 1 :(得分:0)

/ *我假设您希望在填写表格后发送电子邮件是正确的吗?

我想保留此表单信息将信息收集到数据库中以备将来使用。然后,您可以将信息查询到发送表单。

以下是可能对您有用的代码?* /

for(var i = 0; i< place.address_components.length; i ++){

var addressType = place.address_components[i].types[0];

if (componentForm[addressType]) {
  var val = place.address_components[i][componentForm[addressType]];
  document.getElementById(addressType).value = val;

  your_obj[addresType] = val;

}

}

//之后你可以在你喜欢的地方使用它: var postal_code = your_obj [' postal_code'];

//首先检查console.log()以了解your_obj中的所有项目 的console.log(your_obj);