Google Maps API-获取与自动完成结果相同的地址

时间:2019-06-26 12:22:25

标签: javascript google-maps-api-3

我正在使用Google Maps Autocomplete API来检索用户的地址。

  setupAutoCompleteAndGeoCoder = () => {
    this.geocoder = new google.maps.Geocoder();
    this.autoComplete = new google.maps.places.Autocomplete(
      document.getElementById("autoComplete")
    );
    this.autoComplete.setFields([
      "address_components",
      "geometry",
      "icon",
      "name"
    ]);
    this.autoComplete.addListener("place_changed", () =>
      this.placeSelectionHandler()
    );
    ...

placeSelectionHandler函数如下所示:

  placeSelectionHandler() {
    const { address_components, geometry } = this.autoComplete.getPlace();
    const result = {
      addr: this.getAddressInStringForm(address_components),
    };
    ...

getAddressInStringForm函数从API接收响应的address_component部分,并将一个字符串解析在一起,以显示在结果字段中给用户。

但是,我注意到我从address_component中的数据构建的地址字符串与google在下拉菜单中显示的地址字符串不同,即,我从address_component构建的字符串是从不与用户从下拉菜单中进行选择完全相同。这是Google在其下拉菜单中显示的结果图像。

Google autocomplete results

这是address_component中我从上述下拉菜单(伦敦国际机场)中选择最后一个选项时的数据:

enter image description here

如何根据Google自动填充下拉列表中的选择构建相同的字符串。

编辑:

由于以下评论不合时宜,因此问题尚不清楚。我想获取下拉列表中的Google自动完成服务提供的所选选项的值(根据图片)。我需要使用this.autocomplete.getPlaces()的响应来构建字符串。

0 个答案:

没有答案