Данная обработка демонстрирует возможности интеграции 1С с картографическими сервисами. Поскольку уже было опубликовано немало обработок на эту тему, я, чтобы не повторяться, решил собрать в одну обработку интересные и нужные функции из 4 сервисов:
Обновление 03.06.2020.
[*] Добавлен вывод информации о маршруте в управляемых формах
[*] Google - изменен адрес скрипта закгрузки карты, опимизация для открытия карты на старых платформах (на движке IE)
[*] OSM - дорабтка рисования маршрута на OSRM под изменения API
Обновление 29.07.2019.
[*] В связи со скорым отказом Яндекса от использования анонимных вызовов API-JS и геокодирования доработана инициализация карты с использованием API-ключа(неправильно передавался параметр).
[*] Доработан геокодер яндекса - если указан API-ключ, то геокодирует с ним.
[*] Для геокодера Яндекса добавлен формат JSON.
[*] Исправлена проблема с переинициализацией карт в управляемых формах в тонком клиенте.
Обновление 13.02.2019.
[+] Добавлена возможность работы с OpenStreetMap через api OpenLayers v5. Геокдирование реализовано через сервис Nominatim. Маршрутизация реализована через сервис OSRM.
[+] Реализован алгоритм поиска и построения выпуклого многоугольника среди массива точек.
[*] Яндекс и Google требуют для корректной работы использование api-ключа. Обработка позволяет работать с этими сервисами как с ключем, так и без (но будет ограниченный функционал).
[*] Переделана обработка - теперь для каждого сервиса сделана отдельная форма для обычных и управляемых форм.
[*] Перевод работы макетов в режим совестимости IE=10.
[*] На текущий момент проверена работа всех представленных сервисов во всех режимах 1С - Толстый клиент, Тонкий клиент, Веб-клиент. Тестировалось на версии 1С 8.2.12.
[*] Работу http-геокодерования переведено на json-формат (кроме Яндекса). Оптимизирован сам процесс геокодирования - ответ читается сразу, а не сохраняется во временный. На старых версиях платформы может выдавать ошибку.
Обновление 29.07.2016.
[*] Отказ от использования метода eval() в обычных формах
[*] Перевод работы макетов в режим совестимости IE=9 и больше - открываются больше возможностей карт и меньше ошибок.
[*] Перевод 2GIS на API 2.0
[-] 2GIS - в версии 2.0 отсутствует встроенный js-геокодер
[*] Google-map - исправлена проблема с кластеризатором
[-] На версиях 1С ниже 8.3.7 при повторном открытии возможно отключене функционала HTML-документа. Скорее всего это внутрення ошибка платфрмы, которые исправлена в более поздних версиях.
Обновление 23.02.2016.
[*] Исправление ошибок в картах Яндекса и Гугл.
Обновление 10.01.2013.
Поддержка работы обработки в тонком и веб-клиенте. Но там поддерживается работа только трех поставщиков услуг - Яндекс, Google. Рамблер. 2ГИС выбыл из гонки, потому, что клик на элементе формы в 1С срабатывает раньше клика в JS, поэтому координаты метки не считываются. А событий в HTML-поля в управляемых формах очень мало - двойного клика нет. Также добавлена возможность построить полигон по выбранным точкам. В тонком клиенте работа HTML-поля бывает некорректна - это уже особенности платформы.
Вот список возможностей сервисов, которые я пытался интегрировать с 1С:
- Инициализация карты
- Поиск адреса на карте с текстовым представлением
- Геокодинг
- Обратная поиск адреса по ее координатами
- Взаимодействие с картами - прием координат установленного на карте метки
- Построение маршрутов по указанным точками
- Кластеризация меток на карте при увеличении масштаба
- Построение полигона по всем меткам на карте
- Построение выпуклого полигона по крайним меткам
Ну а теперь подробно по каждому сервиса
Web-версия.
API Яндекс-карт.
На текущий момент используется версия API 2.0.
Возможности обработки при работе с Яндекс-картами:
- Инициализация карты - ДА;
- Отсутствие API-ключа - ДА;
- Поиск адреса на карте с текстовым представлением - ДА;
- Геокодирование - ДА;
- Обратный поиск адреса по его координатами - ДА;
- Взаимодействие с картами - прием координат от установленной на карте метки - ДА (клик на карте);
- Построение маршрутов по указанным точками - ДА;
- Кластеризация меток на карте при увеличении масштаба - ДА;
Google-карты
Web-версия.
API Google- карт.
На текущий момент используется версия API v3.
Возможности обработки при работе с Google-картами:
- Инициализация карты - ДА;
- Отсутствие API-ключа - ДА;
- Поиск адреса на карте с текстовым представлением - ДА;
- Геокодирование - ДА;
- Обратный поиск адреса по его координатами - ДА;
- Взаимодействие с картами - прием координат от установленной на карте метки - ДА (клик на карте);
- Построение маршрутов по указанным точками - ДА (до 10 точек, включена оптимизация промежуточных точек);
- Кластеризация меток на карте при увеличении масштаба - ДА;
2ГИС-карты
Web-версия.
API 2ГИС- карт.
На текущий момент используется версия API 1.0.
Возможности обработки при работе с 2ГИС-картами:
- Инициализация карты - ДА;
- Отсутствие API-ключа - НЕТ;
- Поиск адреса на карте с текстовым представлением - ДА;
- Геокодирование - ДА (но нужен API-ключ);
- Обратный поиск адреса по его координатами - ДА;
- Взаимодействие с картами - прием координат от установленной на карте метки - ДА (клик на карте);
- Построение маршрутов по указанным точками - НЕТ;
- Кластеризация меток на карте при увеличении масштаба - НЕТ;
Рамблер-карты (проект умер, оставляю в статье для памяти)
Web-версия.
API Рамблер- карт.
На текущий момент используется версия API 1.x.
Возможности обработки при работе с Рамблер-картами:
- Инициализация карты - ДА;
- Отсутствие API-ключа - ДА;
- Поиск адреса на карте с текстовым представлением - ДА;
- Геокодирование - ДА;
- Обратный поиск адреса по его координатами - ДА;
- Взаимодействие с картами - прием координат от установленной на карте метки - ДА (одинарный клик на карте);
- Построение маршрутов по указанным точками - ДА;
- Кластеризация меток на карте при увеличении масштаба - ДА (но в обработку не добавлял, не понравилось);
Обработка реализована для 1С 8.2 (толстый клиент).