Я работаю над Angular Project и пытаюсь получить place_id
адрес, чтобы я мог использовать его с API Google Maps Embed и показывать результат на странице.
Прямо сейчас я использую API Google Maps Embed, отправляя http-запрос с указанным адресом, например так: https://www.google.com/maps/embed/v1/place?key=API_KEY&zoom=18&maptype=satellite&q=Example%20Street%201%2C%209999%20Example%20Town%20Example%20Country
.
Но моя цель - показать пользователю сообщение в зависимости отна результат адреса, введенного пользователем.
Например, если пользователь ввел улицу, которую невозможно найти, но введенный город действителен, Карты должны указывать на город. И если улица и город недействительны, должно появиться сообщение типа «Ни улица, ни город не найдены! ...». Но проблема с API Google Maps Embed заключается в том, что я не получаю ответ, поэтому могу что-то проверить.
Так что я решил сначала выполнить запрос place_id
, и если он вернется, я воспользуюсь API для встраивания карт, иначе покажу пользователю всплывающее сообщение.
IЯ могу получить place_id
с помощью API Адресов, а также API Карт JavaScript. Это код:
const request = {
query: 'New York',
fields: ['place_id']
};
this.map = new google.maps.Map(this.mapElement.nativeElement);
this.service = new google.maps.places.PlacesService(this.map);
this.service.findPlaceFromQuery(request, (results, status) => {
if(status === google.maps.places.PlacesServiceStatus.OK) {
this.placeId = results[0].place_id;
}
})
В соответствии с документами оплачивается google.maps.Map()
, но с помощью API Places для получения базовых данных предназначено длясвободно. И чтобы иметь возможность использовать PlacesService
, мне нужно передать объект Map
.
Итак, мой вопрос, есть ли другой способ получить place_id
без выставления счетов через JavaScript API Карт?