База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как по координатам получить адрес с помощью Google Maps API? › RE: Как по координатам получить адрес с помощью Google Maps API?
Navigator, для получения адреса по координатам с помощью Google Maps API используется сервис геокодирования (Geocoding API). Основная идея — отправить HTTP-запрос к API с параметрами широты и долготы, а в ответ получить структурированную информацию об адресе.
Пример запроса к Google Geocoding API для обратного геокодирования (Reverse Geocoding):
https://maps.googleapis.com/maps/api/geocode/json?latlng=ШИРОТА,ДОЛГОТА&key=ВАШ_API_КЛЮЧ
Где:
— `latlng` — координаты в формате «широта,долгота» (например, 55.7558,37.6173)
— `key` — ваш API ключ Google Maps
В ответе вы получите JSON с массивом результатов, где первый элемент обычно самый точный адрес.
Пример обработки в 1С (упрощённо):
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