Источник данных для маркеров Карты

<< Click to Display Table of Contents >>

Navigation:  Создание окон для клиента визуализации > Библиотека HMI > Категория Контролы > Карта >

Источник данных для маркеров Карты

Источник данных карты - это массив структур, в котором каждая структура описывает один маркер на карте. В этой структуре обязательно должны быть поля Y, X, в которых записаны координаты элемента, а также поле для отображения типа маркера. Помимо этих обязательных полей могут быть поля, описывающие любые другие свойства маркера – видимость, фон, пользовательские параметры. Источником данных может быть параметр узла, объекта или программы. Чтобы привязать этот параметр к карте, надо его перетащить в поле Источник данных в окне редактора карты на вкладке Сервер или в панели свойств.

Рассмотрим основные этапы создания параметра нужного типа.

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

В пользовательской библиотеке нужно создать структуру с нужными полями. Три поля должны быть обязательными:

Название

Тип

Назначение

Y

LREAL

Определяет широту маркера, на которой будет находится маркер. Как правило, задается в градусах

X

LREAL

Определяет долготу, на которой будет находится маркер. Как правило, задается в градусах.

MarkerType

например, INT

Поле, которое будет определять, как будет отображаться маркер, какое окно, будет использовано, для отображения маркера. Если нужно на карте размещать три разных типа объектов, то параметр должен принимать три предопределенных значения, например, 1, 2 или 3.

Помимо обязательных параметров, могут быть добавлены и произвольные, которые также могут влиять на внешний вид маркеров  (или отображаться в всплывающих окнах, при клике на маркер) например:

istochnik_dannyh_karty

Создание массива структур

Далле в пользовательской библиотеке нужно создать массив структур, где в качестве элемента массива используется ранее созданная структура. Количество элементов массива определяется количеством маркеров, которые нужно отображать на карте:

istochnik_dannyh_karty_1

Массив может быть определенной на этапе разработки длины, либо изменяемой в режиме исполнения, т.е. динамической.

Если используется динамический массив, то в программе, который будет его формировать нужно использовать специальные функции, предназначенные для работы с такими массивами.

Параметр типа массив структур

При создании параметра нужно назначить ему созданный тип массив структур:

istochnik_dannyh_karty_2

Чтобы значения полей структур массива изменялись в режиме исполнения  нужно создать программу, где они будут связаны или с параметрами проекта, либо будут прочитаны из файла или из базы данных. Текст программы зависит от задач, которые решаются в проекте. Обычно для создания таких программ используют редактор ST.

Чтобы обратиться к какому-либо полю массива структур можно использовать запись: Параметр[i]. поле, где Параметр - имя параметра, i - номер элемента массива, а поле, это имя поля структуры.

Связь между внешним видом маркера и полями параметра

После того как параметр нужного типа создан, его нужно перетащить в поле Источник данных в окне редактора карты на вкладке Сервер или в панели свойств:

istochnik_dannyh_karty_3

После этого на вкладке Стиль маркера редактора Карты появится возможность настроить зависимость внешнего вида маркера и полями источника данных:

istochnik_dannyh_karty_4

Рассмотрим порядок настройки на примере параметра Тип маркера. В выпадающем списке, который соотвествует данному параметру выбираем поле связанной структуры MarkerType:

istochnik_dannyh_karty_5

Далее необходимо настроить зависимость между значением поля структуры и значением свойства, для этого нужно нажать на кнопку okno_nastr_stil_stroki_1 рядом с полем выбора. Появится окно настройки конвертации.

Далее нужно определить какое окно, из тех, что добавлены во вкладке Окна для маркеров будет использовано для каждого из возможных значений поля структуры. В данном случае рекомендуется использовать точечную конвертацию, для других параметров могут быть использованы другие способы конвертации, в зависимости от поставленных задач:

istochnik_dannyh_karty_6