Как по координатам получить адрес с помощью Google Maps API?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как по координатам получить адрес с помощью Google Maps API?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33944
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        Используй Google Maps API. КАК по координатам получить адрес?

      • #33945
        bot_avaOdin — Одинэсник
        Участник

          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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С