Работа с геокартами в 1С

Данная обработка демонстрирует возможности интеграции 1С с картографическими сервисами. Поскольку уже было опубликовано немало обработок на эту тему, я, чтобы не повторяться, решил собрать в одну обработку интересные и нужные функции из 4 сервисов:

Внимание! Обработка предназначена только для демонстрации возможностей интеграции картографических сервисов с 1С.

Обработка распространяется как есть. Автор не несет ответственности за действия пользователей обработки, которые не будут удовлетворять лицензионные соглашения этих сервисов.

Вот список возможностей сервисов, которые я пытался интегрировать с 1С:

  • Инициализация карты
  • Поиск адреса на карте с текстовым представлением
  • Геокодинг
  • Обратная поиск адреса по ее координатами
  • Взаимодействие с картами — прием координат установленного на карте метки
  • Построение маршрутов по указанным точками
  • Кластеризация меток на карте при увеличении масштаба
  • Построение подигона по указаным меткам;

Ну а теперь подробно по каждому сервиса

Яндекс-карты

Web-версия.

API Яндекс-карт.

На текущий момент используется версия API 2.1.

Возможности обработки при работе с Яндекс-картами:

  • Инициализация карты — ДА;
  • Отсутствие 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-ключа — ДА;
  • Поиск адреса на карте с текстовым представлением — ДА;
  • Геокодирование — ДА;
  • Обратный поиск адреса по его координатами — ДА;
  • Взаимодействие с картами — прием координат от установленной на карте метки — ДА (клик на карте);
  • Построение маршрутов по указанным точками — ДА;
  • Кластеризация меток на карте при увеличении масштаба — ДА (но в обработку не добавлял, не понравилось);
  • Построение полигона по указанным точкам — ДА;


Последние обновления
[+] — новый функционал, [*] — изменения, [!] — исправленные ошибки

01.03.2016
[*] Перевод работы обработки на более новые версии API для Яндекса и Google
[*] Исправленные ошибки при инициализации или работы карты
[+] 2ГИС добавлена поддержка работы в тонком и веб-клиенте

10.01.2013
[+] Добавлена возможность работы обработки в тонком и веб-клиенте.
[+] Добавлена возможность построить полигон по выбранным точкам. В тонком клиенте работа HTML-поля бывает некорректна — это уже особенности платформы.

Скачать

Работа з картами  -- 102.21 kB, Скачан 1944 раз - Скачать
  • Анатолий

    Спасибо большое за хороший пример работы с API интернет карт

  • Тарас Бондарчук

    скажите, а как можно построить трек по массиву координат? а то у гугла ограничение на количество точек в маршруте, а яндекс сильно засоряет картинку маркерами, ну и строит иногда не совсем адекватный маршрут (предлагает ехать окружными путями).

  • Андрей

    Отлично. Весьма познавательно. Спасибо. Скоро пригодится:)

  • Проект «Рамблер-карты» закрылся. Из публикации не убираю, чтобы помнить, что такое было

  • AlbinaShibaeva

    надо как-то определить пересечение полигонов, можете подсказать или ссылкой по этой теме поделиться.

  • Вит

    Добрый день. Спасибо за разработку.
    Можно ли после того, как вывели метки на карту сохранить полученное в картинку?

  • Орион Закиров

    Спасибо за разработку. Использую для расчета маршрутов в логистике.

  • Михаил

    Добрый день.

    В первую очередь хочу поблагодарить за разработку, а во вторую задать вопрос:

    Как можно в 1С считать координаты точек редактируемого многоугольника:
    http://api.yandex.ru/maps/jsbox/2.0/polygonEditor

    Заранее благодарен!

  • Андрей

    Скачивается пустой файл

    • Я проверил — файл скачивается не пустой с нужным именем и расширением.

  • Евгений

    Файл скачивается, да, с нужным именем и разрешением.
    Но! Размер файла 392 байт, начинаем думать о вечном… О_о

  • Лыков Олег

    Добрый день.
    Спасибо за разработку.

    Подскажи, если в курсе, как возможно сделать возможным редактирование маршрута как на карте?
    Или в какую сторону смотреть, по этому вопросу?

  • Сергей Серов

    битый файл О_о

    • Попробуйте сейчас скачать.
      Действительно, был какой-то глюк. Сейчас вроде бы качает и открывает нормально.
      Если не получится — пришлите мейл, сброшу туда

  • Андрей

    Здравствуйте, после того как открываю обработку, инициализируется карта, а затем выскакивает ошибка как на картинке. Выбираю Google карты. Если курсор мыши убрать с HTML-поля и нажать ESC, то ошибка исчезает, но если снова навести курсор на поле HTML, то снова появляется ошибка. Можете подсказать, как побороть проблему?

  • Maxim Trukhachev

    Доброго времени. Подскажите, а как вывести все найденные точки на карту?

    • Здравствуйте.
      Я вижу два способа, если есть координаты меток:
      1. Метод addMarker
      2. Метод ReverseSearchAdres

      И один, если есть только адрес:
      1. FindAdres

  • Никита

    Добрый день! Очень интересная и полезная обработка.
    Я сейчас играюсь с яндекс картами и у меня вопрос: реализовав обратное геокодирование, хочу чтобы при построении метки выводилось в таблице точек не «точка 1» и т.д., а адрес, который соответствует метке на карте. Не подскажете, как такое реализовать?

    • Есть два способа:
      1. Метод ReverseSearchAdres — имеет встроенный геокодер и выводит первый найденный адрес.
      2. Изменить (аккуратно) или продублировать метод addMarker, чтобы он мог принимать в параметрах текст метки и устанавливать его в свойства метки.
      Вам выбирать способ

      • Никита

        Я сильно извиняюсь, но 3 день изучаю JS. В основном брал примеры из песочницы, но Ваш кажется сложнее, т.к. функций в примерах и документации не увидел.
        https://drive.google.com/file/d/0B2y4juDhzBkAdlhlMEttUjZ2TDg/view
        Если я ставлю сам метку на карту он правильно определяет адрес. При прямом геокодировании все отлично работает — ввожу адрес в строку, он в ТЗ пишет полный адрес «Россия, Москва, т.д.». Но при обратном геокодировании никак не могу сделать точно также…

  • Андрей

    Здравствуйте! А есть какая то возможность получать адрес по точке на карте? Например я кликаю на карту а мне по мимо координат возвращается еще и адрес точки РФ, г.Москва, Проспект строителей 12. Что то пошукал не смог негде найти

    • Андрей

      оп оказалось не актуальным….

  • Andrei

    Здравствуйте, я вам писал на Infostart-e, на счет ключа API Google.
    Я его вставил в самом низу в макете:

    // вот тут

    Потом попробовал в верхней части:

    //вот тут

    Но при запуске обработки выходит ошибка и маршрут не строится…

    • С АПИ-ключем не работал, потому не заметил сразу — там разные АПИ вызываются для платного и бесплатного режимов. Надо проверять, где именно валится и корректировать под описание нового АПИ. Хотя оно должно быть одинаковым.

  • Andrei

    Подскажите пожалуйста, в Google Карты возможен ли поиск напрямую по почтовому индексу?
    Я так понимаю что поиск на самом деле осуществляется по координатам (широта, долгота) и Google переобразовывает имена городов в координаты… Или я не правильно понял?

    • Скорее всего, такого нет. Если искать чисто по индексу.
      Ведь индекс — это не конкретный адрес, а объединенная группа адресов.

      • Andrei

        Не знаю как в пост-советском пространстве, а вот в Европе часто используют почтовые коды для определеня адреса… Я видел пример работы с Google Maps где вводится 5-значный почтовый код и показывается локация которая соответсвует этому коду.(к сожалению, не 1С)
        Да и в браузере если открыть «google_com_maps» и ввести, например 44100 — он предложит локации…

        А что скажете насчет принципа работы Google Maps? Т.е. поиск на самом деле осуществляется по координатам (широта, долгота) и Google переобразовывает имена городов в координаты?

        • У Google есть как прямое, так и обратное геокодирование.
          1 — поиск по текстовому адресу. Чем точнее описан адрес, тем точнее будет результат
          2 — поиск по координатам. Тут в принципе все просто — ищет, что закреплена за координатами и предлагает варианты

  • Faireks

    Добрый день! Подскажите пожалуйста, возможно ли адаптировать эту обработку под платформу 8.3?

    • Не полный вопрос.
      Данная обработка запускается нормально на 8.3.4 и 8.3.7 в тонком и толстом клиентах.

      • faireks

        Большое спасибо за быстрый ответ!

        Вот скриншот с толстого клиента 8.3.7.2008

        Карты — google
        OC — Windows 7
        На сервере с windows 2008 r2 и этой же версией платформы — такая же история.

        • Ошибка относится не к платформе, а к Гугл-картам. Обновили АПИ. Пока нет времени в этом разбираться.

          • faireks

            Понятно, спасибо!

  • Владимир

    Добрый день! Обработка отличная! Не подскажете, почему если я ее открываю на RDP то карты пустая? при этом точки ставятся и остальной функционал доступен. При открытии на локальном компе все норм..

    • Добрый день.
      Скорее всего закрыта какая-то возможность для IE. какая точно — не подскажу, это надо играться.

      • Владимир

        При этом кстати в браузере IE сами карты отображаются нормально

  • Иван

    Спасибо, обработка очень помогла.

  • Андрей Тарасов
  • Виктор

    А у вас не возникает ошибка при работе с яндекс картами «Не удалось получить свойство toUpperCase»?

    • Такое было, когда в макете карты стояло использование IE=8. При установке значения в 9 и выше — проблема исчезала, но появлялась другая — пропадал метлд eval () поля html-документа.

  • Maxim Trukhachev

    Добрый день! Не могли бы вы выложить обновленную версию работы с картами. в выложенной постоянно лезут ошибки.. Видел, что на инфостарте вы уже обновляли ее. Большое спасибо.

    • Добрый день.
      Только что скачал с блога обработку и проверил в 1С Яндекс и Гугл — все ок, ошибок не замечено.

  • Игорь Т

    Добрый вечер. Не подскажите — Добавил новый метод вывода метки :

    function addMarker_tia0(coordPosition, contrag, UID){
    myPlacemark = new ymaps.Placemark(coordPosition, {
    // Свойства
    // Текст метки
    iconContent: contrag,
    hintContent: UID
    }, {
    // Опции
    iconLayout: ‘default#image’,
    iconImageClipRect: [[69,0], [97, 46]],
    iconImageHref: ‘images/sprite.png’,
    iconImageSize: [35, 63],
    iconImageOffset: [-35, -63]
    preset: ‘islands#blueStretchyIcon’
    });
    myMap.geoObjects.add(myPlacemark);
    }
    Метод отрабатывает, но метка не появляется.

    • Добрый. С виду никаких ошибок не вижу, правда с опция иконки я не работал. Вы начните с простого, но работоспособного метода. И потом добавляйте туда параметры.

      • Игорь Т

        Спасибо за ответ. Сам ошибся. Передавал в параметр «coordPosition» — одинаковые значения (широта, долгота).

  • blf

    Дуже дякую!

  • myr4ik07

    Оце бомбець, дуже вдячний.

  • ANDREY Ilnitsky

    Что-то не скачивается файл

  • Роман

    Добрый день.
    По ссылке качается совсем другой файл — файл конфигурации работы с мелодиями «1C-melody-8.1.cf».
    Не могли бы Вы поправить этот момент.

  • Евгений

    Добрый день.А из-за чего может быть такая ошибка? Srpit error 0 https://maps.google.com/maps-api-v3/api/js/28/19/poly.js

    • Возможно обновилось API карт.

      • Евгений

        У вас тоже перестало работать?

  • Dmytro Morozov

    Поделитесь пожалуйста вашей разработкой, старую версию скачивал с инфостарта, новую не могу скачать