Программист 1с
twitter email rss
  • Home
  • Полезности
    • Мобильное приложение курьера
    • MailChimp + УТ 11.
    • 1с-sms
    • Pharma-MPD
    • Зуботехническая лаборатория
  • Блог
  • Партнеры
  • Команда
    • Услуги
    • Опыт
    • Отзывы
    • Контакты
  • Поддержка
    • Инструкция
    • Redmine






yandex_maps_logo

Перед нами была поставлена задача вывода на карту объектов, которые попадают в выделенный пользователем полигон на карте. В качестве сервиса карт был выбран Yandex. В
данном посте я приведу описание подхода к решению задачи с демонстрационной обработкой.

Первым делом нам надо  дать пользователю возможность выбрать полигон, который его интересует. Для этого во время инициализации карты мы сразу создаем объект с типом «Polygon» и вызываем startDrawing(). В результате после появления карты пользователь сразу редактирует полигон.

После окончания редактирования полигона нам надо получить его координаты. Координаты полигона мы получаем с помощью метода getCoordinates(), после чего преобразовываем их в строку для последующего обработки в 1с. Метод PrepearpolygonCoordinates(), который вы найдете в текстовом макете обработки, пишет в скрытый элемент «CoordPoly» текстовое представление координат полигона.  Подготовку координат мы вызываем используя метод поля html-документа eval. Имя элемента поля html-документа — Эксплорер. Вызов подготовки координат из 1с выглядит вот так:

Эксплорер.Документ.parentWindow.eval("PrepearpolygonCoordinates();")

После того как координаты подготовлены нам надо «забрать» строку в 1с для дальнейшей обработки, для этого используем обращение к элементу поля html-документа

Эксплорер.document.getElementById("CoordPoly").value;

После получения координат полигона мы должны проверить вхождение наших точек в полигон. Для этого мы воспользовались алгоритмом из этой публикации.  В обработке есть метод ПолучитьТаблицуЭлементов(), который генерирует 500 текстовых точек для демонстрации работы алгоритма.

После получения точек, которые входят в полигон, мы вывозим их на карту используя метод createPlacemark(). В метод передаются координаты, текстовое представление метки, номер метки и её цвет.

Выглядит работа с полигоном так:

Скачать обработку можно тут:

  yandex_polygon.epf (9,8 KiB, 1 334 скачиваний)

Похожие записи:

  1. Определение координат объекта на Google maps
  2. Google maps, поиск оптимального маршрута
  3. Возможности мобильной платформы 1с
  4. Получение данных из другой базы.
  5. Работаем с Opendatabot из 1с
← Добавление поддержки сервиса sms.ru
Новая почта. Работа с реестрами. →

Новости

  • Работаем с Opendatabot из 1с
  • Сокращаем ссылки в 1с
  • Загрузка данных из Google spreadsheet в 1с
  • Формирование скриншотов сайтов в 1с
  • Удаление старой номенклатуры

Подписка

Copyright © 2021 danila.org.ua
Умные решения для вашего бизнеса