Карты 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

Надеюсь, это поможет!

Другие вопросы по тегам