В микросервисе 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_type
и types
но я действительно хочу считать адрес действительным, если его можно найти в @types/googlemaps AutoComplete
.Вот что я использую в пользовательском интерфейсе (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();
Даже если он просто определен как types: ['address']
в AutoComplete
, его можно найти как "types":["street_address"]
или "types":["premise"]
в "@google/maps"
.. Так как make Node.js возвращает только адреса, которые можно найти в автозаполнении?