Table of contents

Плагин Карты

Обзор

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

Плагин Карты

Установка

Плагин Карты устанавливается по инструкции. В ходе установки выполните дополнительное действие - скопируйте файл PlgMap.xml из дистрибутива плагина в свой проект. Файл должен отображаться в проводнике проекта внутри узла Вебстанция > Конфигурационные файлы.

Конфигурирование

Настройка плагина

Общие настройки плагина, которые влияют на отображение всех карт, находятся в файле PlgMap.xml.

Секция GeneralOptions содержит общие параметры плагина:
PopupOnClick - показывать координаты точки на карте, по которой щёлкнул пользователь.

Секция TileLayers содержит настройки слоёв плиток. В зависимости от провайдера плиток каждый слой TileLayer имеет собственный набор параметров. Пользователь может переключать слои плиток на карте.

В секции MarkerIcons определены значки маркеров, которые доступны на картах. Значки маркеров бывают двух типов:

  1. Значки типа Classic основаны на графическом файле. Имя файла имеет суффикс, соотвествующий статусу объекта: undefined - не определён, normal - норма, error - ошибка, unbound - статус не привязан к каналу. Файлы значков располагаются в директории SCADA\ScadaWeb\wwwroot\plugins\Map\images.
  2. Значки типа Awesome используют популярный графический шрифт Font Awesome.

Создание карты

Каждая карта сохраняется в отдельном файле формата XML, но с расширением map. Пример файла карты MapExample.map содержится в установочном пакете плагина. Файлы карт должны располагаться в директории представлений или её поддиректории.

Таким образом, чтобы создать новую карту, в приложении Администратор создайте новый XML файл с расширением map в разделе проекта Представления, а затем укажите путь к созданному файлу в таблице Представления.

Создание файла
Файл карты
Таблица Представления

Структура файла карты

Рассмотрим структуру файла карты на примере MapExample.map. Все XML-элементы карты находятся внутри корневого элемента MapView.

Элемент InitialView содержит начальные координаты и масштаб карты. Масштаб - это целое число от 0 до 18.

<InitialView>
  <Lat>48.8430</Lat>
  <Lon>2.3275</Lon>
  <Zoom>13</Zoom>
</InitialView>

Далее следуют элементы LayerGroup, каждый из которых содержит группу объектов карты. Пользователь может включать и отключать видимость группы через веб-интерфейс.

Элемент Options внутри LayerGroup задаёт параметры группы.

<Options>
  <Name>Main</Name>
  <DefaultIcon>Site</DefaultIcon>
  <Visible>true</Visible>
  <ShowTooltips>true</ShowTooltips>
</Options>

Name - наименование группы;
DefaultIcon - значок маркера по умолчанию;
Visible - видимость объектов группы;
ShowTooltips - отображать ли подсказки к объектам.

Рассмотрим пример стационарного объекта, элемент Location:

<Location>
  <Name>Eiffel Tower</Name>
  <Descr>Avenue Anatole France, Paris, France</Descr>
  <Icon></Icon>
  <Lat>48.858222</Lat>
  <Lon>2.2945</Lon>
  <StatusCnlNum>0</StatusCnlNum>
  <DataItems>
    <DataItem cnlNum="101" />
    <DataItem cnlNum="104">My text</DataItem>
  </DataItems>
  <Links>
    <Link viewID="2" />
    <Link viewID="2">My link</Link>
  </Links>
</Location>

Name - наименование объекта;
Descr - описание объекта;
Icon - значок маркера. Если не указан, используется значок по умолчанию;
Lat и Lon - широта и долгота объекта;
StatusCnlNum - номер входного канала, который показывает статус объекта. Параметр равен 0, если канал не задан. Допустимые данные канала: статус канала равный 0 означает, что статус объекта не определён, значение канала равно 0 - объект в норме, значение канала равно 1 - объект в состоянии ошибки;
DataItems - каналы, значения которых отображаются на всплывающей панели информации по объекту;
Links - ссылки на представления, на которые можно перейти из панели информации.

Рассмотрим пример мобильного объекта, элемент Vehicle:

<Vehicle>
  <Name>Taxi</Name>
  <Descr>Uber</Descr>
  <Icon>Car</Icon>
  <LatCnlNum>201</LatCnlNum>
  <LonCnlNum>202</LonCnlNum>
  <BearingCnlNum>203</BearingCnlNum>
  <StatusCnlNum>204</StatusCnlNum>
  <DataItems />
  <Links />
</Vehicle>

Параметры Name, Descr, Icon, StatusCnlNum, DataItems и Links аналогичны стационарному объекту.
LatCnlNum и LonCnlNum - номера каналов, которые определяют широту и долготу объекта;
BearingCnlNum - номер канала, который определяет поворот объекта. Поворот измеряется в градусах. Значение канала, равное 0, соответствует нейтральному положению объекта. Положительное значение - поворот по часовой стрелке, отрицательное - поворот против часовой стрелки.

С помощью элементов Circle, Polygon, Polyline и Rectangle на карту добавляются круг, многоугольник, ломаная линия и прямоугольник соответственно.