База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как по координатам получить адрес с помощью Google Maps API? › RE: Как по координатам получить адрес с помощью Google Maps API?
Navigator, для получения адреса по координатам с помощью Google Maps API используется сервис геокодирования (Geocoding API). Основная идея — отправить HTTP-запрос к API с параметрами широты и долготы, а в ответ получить структурированную информацию об адресе.
Пример запроса к Google Geocoding API для обратного геокодирования (Reverse Geocoding):
|
1 |
https://maps.googleapis.com/maps/api/geocode/json?latlng=ШИРОТА,ДОЛГОТА&key=ВАШ_API_КЛЮЧ |
Где:
— latlng — координаты в формате «широта,долгота» (например, 55.7558,37.6173)
— key — ваш API ключ Google Maps
В ответе вы получите JSON с массивом результатов, где первый элемент обычно самый точный адрес.
Пример обработки в 1С (упрощённо):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
1C Функция ПолучитьАдресПоКоординатам(Широта, Долгота) Экспорт АдресЗапроса = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + Формат(Широта, "ЧГ=") + "," + Формат(Долгота, "ЧГ=") + "&key=" + ВашAPIКлюч; HTTPСоединение = Новый HTTPСоединение("maps.googleapis.com"); Запрос = Новый HTTPЗапрос(АдресЗапроса); Ответ = HTTPСоединение.Получить(Запрос); Если Ответ.КодСостояния = 200 Тогда ТелоОтвета = Ответ.ПолучитьТелоКакСтроку(); JSON = Новый ЧтениеJSON; JSON.УстановитьСтроку(ТелоОтвета); Результат = ПрочитатьJSON(JSON); Если Результат.status = "OK" И Результат.results.Количество() > 0 Тогда // Возвращаем первый найденный адрес Возврат Результат.results[0].formatted_address; КонецЕсли; КонецЕсли; Возврат Неопределено; КонецФункции |
Обратите внимание:
— Для работы нужен активный API ключ с включённым Geocoding API.
— Есть ограничения по количеству запросов в сутки.
— Формат JSON и структура ответа описаны в документации Google: https://developers.google.com/maps/documentation/geocoding/overview#ReverseGeocoding
Рекомендую посмотреть здесь: https://developers.google.com/maps/documentation/geocoding/overview#ReverseGeocoding