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

Установка
Плагин Карты устанавливается по инструкции. В ходе установки выполните дополнительное действие - скопируйте файл PlgMap.xml
из дистрибутива плагина в свой проект. Файл должен отображаться в проводнике проекта внутри узла Вебстанция > Конфигурационные файлы.
Конфигурирование
Настройка плагина
Общие настройки плагина, которые влияют на отображение всех карт, находятся в файле PlgMap.xml
.
Секция GeneralOptions
содержит общие параметры плагина:
PopupOnClick
- показывать координаты точки на карте, по которой щёлкнул пользователь.
Секция TileLayers
содержит настройки слоёв плиток. В зависимости от провайдера плиток каждый слой TileLayer
имеет собственный набор параметров. Пользователь может переключать слои плиток на карте.
В секции MarkerIcons
определены значки маркеров, которые доступны на картах. Значки маркеров бывают двух типов:
- Значки типа
Classic
основаны на графическом файле. Имя файла имеет суффикс, соотвествующий статусу объекта:undefined
- не определён,normal
- норма,error
- ошибка,unbound
- статус не привязан к каналу. Файлы значков располагаются в директорииSCADA\ScadaWeb\wwwroot\plugins\Map\images
. - Значки типа
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
на карту добавляются круг, многоугольник, ломаная линия и прямоугольник соответственно.