Робота з геокартами в 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, Скачаний 1936 разів - Скачати
  • Анатолий

    Спасибо большое за хороший пример работы с 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

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