Получение координат с помощью сервиса Яндекса
В современном мире существует множество сервисов, которые работают с геоданными.
Прямое геокодирование решает проблему определения координат по адресу. Это может быть полезно во многих ситуациях, например:
- Навигация — определение местоположения пользователя для построения маршрута.
- Локализация контента — адаптация информации под географическое положение пользователя.
- Анализ данных — изучение распределения определённых явлений или событий в пространстве.
Геокодер Яндекса — это инструмент, который позволяет получать информацию о географическом положении объектов на карте. С его помощью можно осуществлять преобразование адресов в координаты (геокодирование) и наоборот, а также получать различные географические данные, такие как название страны, региона, города, улицы и даже номер дома.
API Геокодер имеет свои ограничения и правила, которые необходимо учитывать при использовании сервиса. Для ознакомления с ними следует обратиться к документации по API.
Примечание: Лимит запросов к сервису — 1000 в день. Подробнее см. в документации.
Примечание: Демопример имеет ограничение демонстрации всех возможностей при запуске на демостенде (Запустить демо). Рекомендуем установить пример локально.
Предварительная подготовка
Для доступа к API Геокодер необходимо получить ключ.
Для получение ключа потребуется выполнить следующие действия:
- Перейти в Кабинет разработчика
- Нажать Подключить API
- Выбрать API Геокодера
- Принять условия политики
- После появления сообщения об успешном подключении API нажать Перейти к API
- Скопировать API-ключ
Обратите внимание, что ключ будет активирован в течение 15 минут после получения.
Описание алгоритма
1. Импорт исходного набора адресов
В узле address.xlsx выполняется импорт из Excel-файла таблицы адресов.
2. Подготовка данных для Геокодера
Во входном порту переменных подмодели Подготовка данных задаются параметры для запроса к сервису Геокодер.
| Имя | Метка | Значение |
|---|---|---|
apikey |
Ключ | Вводится полученный ранее API-ключ |
format |
Формат запроса | json |
В подмодели Подготовка данных формируется тело запроса для обращения к API Яндекс Геокодера. Каждый адрес нумеруется, а затем соединяется с параметрами, указанными ранее.
В узле Калькулятор адреса нумеруются с помощью функции RowNum.
С помощью узла Переменные в таблицу происходит преобразование списка переменных в таблицу. Значения переменных записываются в столбцы.
К пронумерованным адресам присоединяются поля узла Переменные в таблицу. В мастере настройки узла Соединение заданы следующие параметры:
- Дополнение до наибольшего набора - Повторять набор данных
- Количество строк соответствует - Максимальному набору
3. Запрос к Геокодеру и извлечение координат
На странице Подключения настроено подключение REST-сервиса со следующими параметрами:
- URL сервис:
https://geocode-maps.yandex.ru/1.x/ - Метод: GET
- Параметры запроса:
| Имя | Тип данных |
|---|---|
apikey |
Строковый |
geocode |
Строковый |
format |
Строковый |
- Тип аунтентификации: Не требуется
В подмодели Запрос к сервису и получение координат выполняется REST-запрос к сервису Яндекс Геокодера, а затем преобразование ответа от сервиса для извлечения координат по указанным адресам.
В узле Вызов REST-сервиса выполняется запрос к API Яндекс Геокодер. Во входной порт источника данных запроса подается сформированный запрос из подмодели Подготовка данных.
В ответе сервис возвращает JSON-строку, содержащую геоданные по указанным адресам.
В узле происходит Левое соединение ответов сервиса с соответствующими адресами.
С помощью узла Калькулятор осуществляется извлечение координат из ответа JSON:
return JSON.parse(Response)["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["Point"]["pos"];
Далее с помощью метода split идет разделение строки geoPoint на массив подстрок по пробелу. За счет этого получаем два поля: широту и долготу по указанным адресам.
return geoPoint.split(' ')[0];
return geoPoint.split(' ')[1];
Примечание: Обратите внимание, что калькулятор переключен в режим «JavaScript».
В узле Параметры полей удаляются промежуточные поля, которые не требуются в финальной выборке.
Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно
Минимальные требования к системе:
- Операционная система: Windows 10 и выше
- CPU x64: 2 core 1
- Оперативная память: 4 GB
- Жесткий диск: 10 GB
1 Поддерживается работа на x64 процессорах Intel Core, AMD FX и более новых, содержащих инструкции SSE4.2, POPCNT.