Получение координат с помощью сервиса Яндекса

В современном мире существует множество сервисов, которые работают с геоданными.

Прямое геокодирование решает проблему определения координат по адресу. Это может быть полезно во многих ситуациях, например:

  • Навигация — определение местоположения пользователя для построения маршрута.
  • Локализация контента — адаптация информации под географическое положение пользователя.
  • Анализ данных — изучение распределения определённых явлений или событий в пространстве.

API Геокодер Яндекса — это инструмент, который позволяет получать информацию о географическом положении объектов на карте. С его помощью можно осуществлять преобразование адресов в координаты (геокодирование) и наоборот, а также получать различные географические данные, такие как название страны, региона, города, улицы и даже номер дома.

API Геокодер имеет свои ограничения и правила, которые необходимо учитывать при использовании сервиса. Для ознакомления с ними следует обратиться к документации по API.

Запустить демо

Установить локально

Примечание: Демопример имеет ограничение демонстрации всех возможностей при запуске на демостенде (Запустить демо). Рекомендуем установить пример локально.

Предварительная подготовка

Для доступа к API Геокодер необходимо получить ключ.

Примечание: Лимит запросов к сервису — 1000 в день.

Получение ключа

Для получение ключа потребуется выполнить следующие действия:

  1. Зайти в Кабинет разработчика
  2. Выбрать JavaScript API и HTTP Геокодер
  3. Зарегистрироваться и получить ключ

Обратите внимание, что ключ будет активирован в течение 15 минут после получения.

Описание алгоритма

1. Импорт данных

Имя Метка
 address Адрес

2. Подготовка запроса

В подмодели Подготовка запроса во входном порту переменных задаются переменные:

Имя Метка Значение
 apikey Ключ Вводится полученный ранее API-ключ
 format Формат запроса json
а) Нумерация строк

В узле Калькулятор адреса нумеруются с помощью функции RowNum.

б) Преобразовываем список в таблицу

С помощью узла Переменные в таблицу происходит преобразование списка переменных в таблицу. Значения переменных записываются в столбцы.

в) Соединение данных

К исходному набору данных присоединяются поля узла Переменные в таблицу. В мастере настройки узла Соединение заданы следующие параметры:

  • Дополнение до наибольшего набора - Повторять набор данных
  • Количество строк соответствует - Максимальному набору

3. Отправка запроса и получение данных

а) Настройка подключения

На странице Подключения настроено подключение REST-сервиса со следующими параметрами:

  • URL сервис: https://geocode-maps.yandex.ru/1.x/
  • Метод: GET
  • Параметры запроса:
Имя Тип данных
 apikey Строковый
 geocode Строковый
 format Строковый
  • Тип аунтентификации: Не требуется
б) Отправка запроса

Отправка запроса происходит в узле REST-запрос. На вход порта подаются данные из подмодели Подготовка запроса.

в) Слияние данных

В данном узле происходит Левое соединение полей Номер адреса по порядку и Идентификатор запроса.

г) Парсинг JSON

С помощью узла Калькулятор осуществляется обработка ответа JSON для вывода результата:

return JSON.parse(Response)["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["Point"]["pos"];

Далее с помощью метода split идет разделение строки geoPoint на массив подстрок по пробелу. Ноль указывает, что из полученного массива необходимо взять первый элемент.

return geoPoint.split(' ')[0];
д) Удаление полей

В узле Параметры полей удаляются поля, которые не нужны в финальной выборке.


Парсинг JSON

Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно

Скачать демопример

Минимальные требования к системе:

  • Операционная система: Windows 10 и выше
  • CPU x64: 2 core 1
  • Оперативная память: 4 GB
  • Жесткий диск: 10 GB

1 Поддерживается работа на x64 процессорах Intel Core, AMD FX и более новых, содержащих инструкции SSE4.2 (POPCNT, LZCNT).