gifts2017

Google Maps Framework, работающий под веб-клиентом

Опубликовал Данила Елистратов (CagoBHuK) в раздел Программирование - Практика программирования

Реализация функционала карт гугл под управляемое приложение, работающая под поддерживаемыми 1С браузерами, включает в себя рисование оверлеев, прокладку маршрутов, работу с геокодированием.

Посмотрев существующие реализации карт гугл под управляемое приложение, я пришел к выводу, что они либо совсем ничего не умеют, либо не работают в веб-клиенте. Примеры: http://infostart.ru/public/85922/, http://infostart.ru/public/, http://infostart.ru/public/82886/ и http://infostart.ru/public/76147/. Посему решил написать свою реализацию, умеющую много и работающую под веб-клиентом. Описание читайте ниже. Наиболее полное свежее описание можно получить через справку самого 1С (кнопка справки в форма). Баги пишите в комментарии. Доступ в демонстрационную базу осуществляется без пароля от имени единственного пользователя. Кликаете в ссылку "Геокарты" на рабочем столе - открывается окно визуализации. За разработку хочу 2000 рублей. В свою очередь Вы получаете годовую подписку на обновления и багфиксы, а так же возможность изменять исходный код и использовать/изменять его без права передачи третьим лицам. Демо почему-то не работает, так что вот прямая ссылка на демонстрационную базу.

Причины купить

Какие могут быть причины купить картографическое расширение для 1С? Да самые разные! Например, наличие карт будет полезно:

  1. В логистике.
  2. В CRM.
  3. В страховании.
  4. В торговле.
  5. Да и вообще в любом решении, которое предполагает наличие адресов, маршрутов или географических координат!

Достоинства

  • Абсолютная открытость исходного кода.
  • Рисование объектов на карте. Для каждого нарисованного объекта можно определить различные возможные свойства. Что можно рисовать:
    • Маркеры
    • Круги
    • Линии
    • Полигоны
    • Информационные окна
    • Прямоугольники
    • Маршруты
  • Возможности работы с объектами карты:
    • При перемещении маркера в табличной части автоматически изменяются его широта и долгота.
    • При щелчке на карте предлагается выбрать действие, которое можно совершить.
    • При клике на объекте карты, предлагается выбрать действие, которое можно с ним совершить.
    • При изменении свойств объекта карты, его отображение сразу меняется на карте.
    • При удалении объекта из табличной части, он автоматически удаляется с карты.
    • Для каждого объекта есть возможность не только ручного ввода координат, но и выбора точки на карте/поиска по адресу.
    • Есть возможность реакции на любое событие любого объекта оверлея.
  • Поиск маршрутов:
    • При поиске маршрута все найденные маршруты сохраняются.
    • При выборе строки запроса маршрута, в специальном окне отображаются все возможные варианты.
    • При выборе варианта маршрута маршрут автоматически отображается на карте.
    • При выборе найденного маршрута, автоматически открывается просмотр его точек.
    • В окне расшифровки маршрута можно ознакомиться с отдельными этапами маршрута, увидеть инструкции к действию и просмотреть отдельные участки.
    • Имеется возможность рисования произвольных маршрутов.
  • Трекинг
    • В конфигурации имеется возможность трекинга объектов.
    • Данные по координатам объектов хранятся в регистре сведений.
    • Имеется возможность отображения маршрута объекта за определенный период.
    • Имеется возможность определения положения объекта в пространстве в определенный момент времени.
  • Геокодирование:
    • Возможность поиска точки на карте по адресу.
    • При выборе адреса предлагается выбрать действие, которое можно совершить, как если бы Вы кликнули по карте.
    • Имеется возможность пакетного геокодирования. 1000 адресов обрабатываются порядка 2 минут.
  • Изменение свойств самой карты:
    • Включение и отключение отображения трафика из 1С.
    • Регулировка масштаба карты из 1С.
    • Изменение типа отображения карты из 1С.
    • Удобная форма выбора цветов объектов карты.
  • Возможности пакетной работы с координатами:
    • Возможность определения вхождения координат в полигон.
    • Возможность пакетного определения вхождения нескольких маркеров в полигон.
    • Возможность пакетного поиска лежащих под маркером полигонов.
  • Проверена работа под IE, Firefox, Chrome, во всех возможных типах клиентов самого 1С.

Сравнение версий

Изменения 1.01 (19.09.2011)

  • Исправлена ошибка с обновлением координат при переносе маркера.
  • Зум изменен на ползунок.
  • Исправлена ошибка "'routeResults' is undefined" при поиске маршрута.
  • Исправлена ошибка "Поле объекта не обнаружено" при первом поиске адреса.
  • Добавлены обработчики всех событий объектов оверлея, а не только событий клика.

Изменения 1.02 (28.10.2011)

  • Визуализировал события в форме для возможности дальнейшего их анализа.
  • Добавил прогрессбар расчета маршрута (если маршрут длинный, расчет занимает длительное время).
  • Возможность указывать для формы координаты теперь появляется сразу при открытии формы.
  • Убрал лишние серверные вызовы, что увеличило производительность.
  • Исправлена бага с тем, что линия не удалялась с карты при удалении ее из табличной части.
  • При интерактивном закрытии информационного окна оно теперь удаляется из табличной части.
  • Внес корректировки, повышающие удобство пользовательского интерфейса.
  • Поправил алгоритм расчета маршрута. Теперь правильно работают промежуточные точки.
  • Приделана толковая форма расшифровки маршрута с возможностью просмотра отдельных шагов и инструкций.
  • Добавил поддержку цветов CSS с удобной формой выбора.

Изменения 1.03 (26.01.2012)

  • Исправлена активизация форм при выборе координат на карте.
  • Добавлена возможность отображения произвольных маршрутов на карте.
  • Написан код, отображающий элементы оверлея, созданные до открытия формы (у людей возникали с этим проблемы).
  • Добавлена возможность трекинга объектов.
  • Увеличена целая и дробная точность для всех координат.

Изменения 1.04 (01.07.2013)

  • Исправлена правильность определения объекта на карте.
  • Добавлена возможность расчета вхождения точки в полигон. Реализовано множественное определение вхождения маркера в полигоны и наоборот - наложение полигонов на маркер. (Спасибо logos.)
  • Переделан режим геокодирования. Реализован механизм пакетного геокодирования.
  • Исправлено некорректное рисование маршрутов на карте.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Конфигурация
.cf 201,18Kb
13.10.15
45
.cf 1.04 201,18Kb 45 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Юрий (YRAtomic) 20.09.11 12:56
2. Данила Елистратов (CagoBHuK) 20.09.11 13:04
(1) YRAtomic, Демка-то работает. Глючит инфостартовская система отображения демосайтов (если установить просмотр обработок во вкладках).
3. Юрий (YRAtomic) 20.09.11 13:15
4. Данила Елистратов (CagoBHuK) 20.09.11 13:17
Коллеги, сразу попрошу Вас не включать режим отображения окон во вкладках, т.к. это приводит к невозможности просмотра Вашими коллегами демосайта. Вопрос инфостарту я уже задал. Спасибо.
5. Евгений Сосна (pumbaE) 20.09.11 18:49
Подскажите, если куплю вашу разработку, тогда мне не нужно будет платить гуглу за коммерческое использование Google Maps кругленькую сумму?

Или же вы нарушаете лицензионное соглашение гугла на использование сервиса Google Maps?
Скорее всего вы нарушаете...

P.S. Интересно, Инфостарт нарушает ли лицензионное соглашение гугла?
6. Данила Елистратов (CagoBHuK) 20.09.11 19:31
(5) pumbaE, я думаю, что Вы можете задать Ваш вопрос в первую очередь г-ну Душелову. По поводу фрэйма: если заходить через прямой адрес, который по правилам Инфостарта я не могу тут указать, но который Вы можете увидеть, открыв обработку, то все работает хорошо. Глюки начинаются, когда 1С открывается во фрейме.
7. Дмитрий Быков (bi4ara) 21.09.11 15:14
Идея интересная хоть и не новая, но на мой взгляд реализация жутко сырая для платного использования.

Баги:
1. Маршруты не работают - сыпят кучей ошибок. Как при создании, так и изменении/удалении
2. Причина не выявлена, но после тыркания в разные объекты перестает открываться форма маркера и форма маршрута
3. Поиск можно сказать не работает.

Предложения по улучшению (если интересно)
интерфейс стоит улучшать и к параметрам объектов пояснения.
1. В все формы (линия, маркер,....) в поле цвет добавь выбор из списка и заполняй список возможными значениями. Если добавишь в список картинки с образцами цветов - будет отлично.
2. Полоса масштабирования карты сделай ползунком (Поле полосы регулирования) и вынеси за пределы вкладки, чтоб было доступно с любой закладки.
3. Выбор координат с карты: проверяй открыта ли форма "ввода координат", если открыта то передавай координаты сразу в нее и форму активизируй - иначе куча лишних тырков.
4. Раз всего в конфигурации одна обработка, то есть смысл поставить ее на рабочий стол и все прочие подсистемы отключить. Останется при запуске сразу нужная обработка
8. Данила Елистратов (CagoBHuK) 21.09.11 15:16
(7) bi4ara, спасибо за развернутый комментарий. Информацию принял. Кто, как не Вы, коллеги, ткнете мне в глюки и шероховатости. :)
9. Kirill Petrov (ZeusF1) 21.09.11 17:45
Красиво! Не думал что можно чтото подобное сделать :-)
10. Maxim Khanes (guildofthecode) 20.10.11 15:51
Весьма интересно, но дорого "реализация жутко сырая для платного использования"... Будет ли уменьшение цены и новые обновления (исключения багов) к разработке?
11. Данила Елистратов (CagoBHuK) 24.10.11 09:51
(10) допиливаю постоянно. Баги правлю регулярно. Думаю, что через 2-3 месяца все будет стабильно и красиво. Если Вы нашли баг, не поленитесь - отправьте его описание в комментарий.
12. CodeOptima (CodeOptima) 08.01.12 19:15
Здорово. Первый раз вижу такой функционал.
Если не секрет, как обошли проблему вызова
Document.parentWindow.execScript
в браузерах не IE?
13. Анаит Бадалян (LaNaite) 21.09.12 18:53
15. madranger (madranger) 16.12.12 22:37
В разработке обнаружена ошибка:
- добавляем два маркера
- при движения обоих маркеров координаты меняются у только у какого то одного. Неправильно определяется объект в обработчике события (то же самое по событию onClick откроются свойства не того маркера).
В чем может быть проблема?
16. Данила Елистратов (CagoBHuK) 19.12.12 22:39
(15) Ошибка исправлена. Проверяйте. Если Вы купили продукт, укажите номер заказа, и я пришлю Вам обновленную конфигурацию, а заодно и учетные данные для подключения к хранилищу.
17. Николай Зевеке (zekrus) 13.02.13 12:04
Вопрос:
-Пакетное использование геокодирования строго запрещено в коммерческих целях, как у вас этим вопросом (договоренность есть)?
18. Данила Елистратов (CagoBHuK) 13.02.13 18:01
(17) Я предоставляю механизм, а уж в каких целях этот механизм используется - вопрос к пользователю. Вы же не судите производителя оружия, за убитых его оружием людей.
19. Николай Зевеке (zekrus) 13.02.13 22:26
(18) CagoBHuK, Думаю на счет оружия - это вопрос к другим органам (вам виднее).
А что касается вашего "участия" то деньги вы берете вполне реальные и думаю
производителям услуг будет не без интересно. Спасибо.
20. Данила Елистратов (CagoBHuK) 14.02.13 09:45
(18) Сообщите в таком случае про меня куда надо и дело с концом. Не нужно устраивать словоблудие.
21. Николай Зевеке (zekrus) 14.02.13 10:47
(20) CagoBHuK, Мое мнение людям будет полезно узнать, что покупая программу с нарушением
лицензионного соглашения компании производителя услуги они становятся соучастниками (по закону).
22. vpaoli 18.09.13 17:46
Интересная разработка.
Не могли бы вы выложить для ознакомления инструкцию по установке вашей компоненты ? Что необходимо установить на Вэб-сервере и т.п. ?
23. vpaoli 18.09.13 17:47
Интересная разработка.
Не могли бы вы выложить для ознакомления инструкцию по установке вашей компоненты ? Что необходимо установить на Вэб-сервере и т.п. ?
24. Данила Елистратов (CagoBHuK) 18.09.13 17:52
(22) Здравствуйте. Никаких внешних компонент нет. Все написано на языке 1С с использованием JavaScript во фрейме HTML. Иными словами просто разверните конфигурацию, опубликуйте ее на веб-сервере и вуаля!
25. ilya005 (ilya005) 18.02.15 14:19
26. Данила Елистратов (CagoBHuK) 15.10.15 11:26
Сделал публикацию бесплатной, пользуйтесь.
Ruster1983; Варвар; +2 Ответить
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа