我正在使用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在其下拉菜单中显示的结果图像。
这是address_component
中我从上述下拉菜单(伦敦国际机场)中选择最后一个选项时的数据:
如何根据Google自动填充下拉列表中的选择构建相同的字符串。
编辑:
由于以下评论不合时宜,因此问题尚不清楚。我想获取下拉列表中的Google自动完成服务提供的所选选项的值(根据图片)。我需要使用this.autocomplete.getPlaces()
的响应来构建字符串。