Карты Google: открыть URL по координатам, но показать название места
Я пытался открыть Карты Google (специально для Android, но не обязательно) с помощью URL-адреса с координатами, например
https://www.google.com/maps/search/?api=1&query=51.5055,-0.0754
Но когда карта откроется, я хочу, чтобы она показывала название места, например, "Тауэрский мост". Не координаты 51.5055,-0.0754
Я пробовал что-то вроде
https://www.google.com/maps/search/?api=1&query=51.5055,-0.0754&query_place_id=Tower+Bridge
без удачи Когда карты открываются, отображаются координаты, а не название места.
Я в порядке с "инъекцией" названия места (что-то вроде https://....&location_name=Traitors+Gate
) и / или с картами, показывающими название местоположения (обратное геокодирование) из координат.
Мотивация: координаты являются более точными и менее двусмысленными, чем названия мест. Например, есть Иерусалим, Огайо, и есть Иерусалим, Израиль, который находится за полмира. Или "Дворец Лувр", представляющий собой одно здание, но одно огромное здание на четырех улицах с несколькими входами. Координаты решают эти проблемы, но они не "читабельны". Вы не можете представить "49.3697,0.8711" пользователю и ожидать, что он узнает пляж Омахи.
Спасибо
1 ответ
К сожалению, URL-адреса Карт Google не поддерживают отправку ярлыков такого типа. Вам необходимо отправить действительное значение идентификатора места, чтобы получить правильное название места в приложении Google Maps.
Вам понадобится еще один шаг, чтобы сделать это. Выполнить запрос обратного геокодирования для координаты и получить идентификатор места.
https://maps.googleapis.com/maps/api/geocode/json?latlng=51.5055%2C-0.0754&language=en&key=YOUR_API_KEY
Это вернет идентификатор места ChIJlRsEuUgDdkgRSM7ciIhVooM
Тауэрского моста. Посмотрите на этот пример в инструменте Geocoder:
https://google-developers.appspot.com/maps/documentation/utils/geocoder/
Существует клиентская библиотека Java для веб-служб API Карт Google, которую вы можете найти на GitHub:
https://github.com/googlemaps/google-maps-services-java
Вы можете использовать эту библиотеку для выполнения запросов геокодирования, или вы также можете использовать API мест рядом с поиском, чтобы найти ближайшее место. Обратите внимание, что веб-сервисам требуется другой ключ API, поскольку они не поддерживают ограничение приложений Android, которое вы используете в ключе API для API Карт Google.
Как только вы получите значение идентификатора места, просто создайте ссылку на URL Карт Google. Например
https://www.google.com/maps/search/?api=1&query=51.5055,-0.0754&query_place_id=ChIJlRsEuUgDdkgRSM7ciIhVooM
Надеюсь, это поможет!