gpt4 book ai didi

node.js - 如何通过@google/maps获取有效地址?

转载 作者:太空宇宙 更新时间:2023-11-04 00:01:43 24 4
gpt4 key购买 nike

在我使用的 Node.js 微服务中:

"@google/maps": "^0.5.5"

googleMapsClient.geocode({address: '160 Market St, Paterson, NJ 07505'})
.asPromise()
.then((response) => {
console.log("result: " + JSON.stringify(response.json));
})
.catch((err) => {
console.log("error: " + err);
});

作为回应,我得到:"location_type":"ROOFTOP""types":["street_address"] 这意味着地址有效

如果我尝试验证相同的地址但状态无效,例如“否”,它仍然返回 "location_type":"ROOFTOP""types":["street_address"]。假设因为 google API 对其进行了格式化,因此可以在响应中看到:

"formatted_address":"160 Market St, Paterson, NJ 07505, USA"

有时 google API 会返回 "location_type":"ROOFTOP""types":["premise"]

当然,我可以按 location_typetypes 过滤结果,但如果可以在 @types/googlemaps AutoComplete 中找到地址,我确实希望将其视为有效。这是我在 UI(Angular)中使用的:

"@types/googlemaps": "3.30.16"
const autocomplete = new google.maps.places.Autocomplete(e.target, {
types: ['address']
});

var place = google.maps.places.PlaceResult = autocomplete.getPlace();

即使它只是在 AutoComplete 中定义为 types: ['address'],也可以在 "@google/maps" 中找到 "types":["street_address"]"types":["premise"]。那么如何让 Node.js 只返回可以在 AutoComplete 中找到的地址呢?

最佳答案

Places API @google/maps 库也支持,可以这样完成:

//1. query predictions
googleMapsClient.placesQueryAutoComplete(
{
input: "160 Market St, Paterson, NJ 07505"
},
function(err, response) {
if (!err) {
if (response.json.predictions.length === 0) {
console.log("Place not found");
} else {
var prediction = response.json.predictions[0]; //select first prediction
//2. query place by prediction
googleMapsClient.place(
{
placeid: prediction.place_id
},
function(err, response) {
if (!err) {
console.log(response.json.result); //prinat place
}
}
);
}
}
}
);

说明:

  • 首先使用placesQueryAutoComplete函数,该函数返回基于查询的查询预测数组
  • place 函数通过提供从先前响应中提取的 placeId 参数来返回地点详细信息

关于node.js - 如何通过@google/maps获取有效地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54360398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com