Пример получения адреса координат точки клика по карте, используя Яндекс.Карты и дальнейшего получения адреса строкой через сервис Dadata.ru
Обратное геокодирование через dadata.ru, используя ЯндексКарты. Пример того, как можно, используя Яндекс, получить адрес строкой, используя не сервис Яндекса
- Описание
- Подробнее
Описание
Добрый день
Идея не нова — получить адрес в строку, ткнув на Я.Карте мышкой.
Реализация:
- на форме лежит поле Html документа
- пользователь видит Я.Карту
- тыкает по интересующему объекту на карте мышкой. Ставится точка на карте, куда пользователь ткнул
- со стороны 1С перехватываются координаты
- дальше эти координаты отправляются на сервис dadata.ru — обратное геокодирование (API https://dadata.ru/api/geolocate/ )
В результате пользователю показывается или полученный адрес, или координаты (если сервис не смог найти адрес)
Если пользователь согласен с тем, что предлагается, то нажимает Да — и при закрытии формы передаются все параметры, которые возвращается dadata.ru (параметров много. Все на скриншоте не влезли)
Почему так?
На сейчас API яндекса стоит — 174000 год
А у dadata.ru максимальный тариф — 44000 год
(https://dadata.ru/pricing/)
Дата цен 26,08,2028 !
Да-да… у Яндекса методов в API на порядок больше, но и надо то — обратное геокодирование …
В коде реализованы методы
- инициализация карты с автоматическим центрированием карты по нескольким городам (цель: сотруднику из Краснодара гораздо приятнее, если карта при открытии будет позиционироваться на центре Краснодара, а не Москвы. Для нашей компании — регион определятся по фактическому трудоустройству сотрудника)
- функция создания события нажатия на точку на карте (со стороны макета-карты)
- функция отрисовки точки на карте в месте клика (со стороны макета-карты)
- функция стирания предыдущих кликов (со стороны макета-карты)
- позиционирования в любой точке по координатам (+масштаб выставляемого центра) (со стороны макета-карты)
- событие ловли клика по карте (со стороны 1С)
- событие получение адреса строки через координаты от Яндекса по API dadata.ru (со стороны 1С)
Код открытый
В макете используются 3 ключа!!!
- Ключ1 — яндекса. Самим Яндексом используется только для инициализации карты. Поэтому он в макете забит как 123456-78 и тд.
- Ключ2 — dadata.ru — Token — получить можно после регистрации в ЛК сайта.
- Ключ3 — dadata.ru — SecretKey — получить можно после регистрации в ЛК сайта.
Все ..
Спасибо
Всем приятного дня
П.С.
Тестировалось на УНФ 1.6
К конфигурации не привязано, работает через Файл — Открыть
Работать будет на любой конфигурации

