В этом разделе мы более подробно изучим вопросы, связанные с созданием стиля для всего слоя, а также некоторые другие свойства, которые могли бы пригодится в настройке отображения объектов на карте.
mvPenObject pen = new mvPenObject();
pen.Color = 0x333333;
pen.ctype = 2;
pen.width = 2;
mvBrushObject brush = new mvBrushObject();
brush.bgcolor = 0xffff00;
brush.fgcolor = 0x00ffff;
brush.style = 0;
brush.hatch = 2;
mvFontObject font = new mvFontObject();
font.Color = 0x00ff00;
font.fontname = "Map Symbols";
font.framecolor = 0xff0000;
font.size = 8;
mvSymbolObject symbol = new mvSymbolObject();
symbol.shape = 35;
workLayer.uniform = true;
workLayer.SetUniformStyle(pen, brush, symbol, font);
В данном листинге рассматривается пример, в котором слою workLayer присваивается единообразный стиль. Задание стиля происходить с помощью метода SetUniformStyle, и в качестве аргумента этому методу передаются параметры карандаша, кисти и шрифта. Для этого используются классы mvPenObject, mvBrushObject, mvFontObject, mvSymbolObject. В таблице ниже будут перечислены свойства этих классов.
Наименование | Тип | Описание |
mvPenObject | ||
Color | uint | Цвет линии |
Ctype | ushort | Идентификатор стиля линии |
Width | Uint | Ширина линии |
mvBrushObject | ||
Bgcolor | uint | Цвет фона |
Fgcolor | uint | Цвет кисти |
hatch | ushort | |
style | ushort | Стиль кисти |
mvFontObject | ||
angle | int | Угол на который будут повернуты символы |
Color | uint | Цвет символа |
fontname | string | Наименование шрифта |
framecolor | uint | Цвет каймы символа |
graphicUnits | bool | Признак отображения символа в единицах проекции |
italic | bool | Применение курсива к символу |
size | int | Размер шрифта |
strikeout | bool | Применение зачеркивания |
underline | bool | Применение подчеркивания |
weight | int | Ширина сивола |
mvSymbolObject | ||
shape | uint | Код символа |
Однако если даже выполнить метод SetUniformStyle слоя, то стили объектов не поменяются, пока вы не присвоите значение true свойству uniform. Именно это свойство отвечает за то, какой режим оформления будет применяться.
При оформлении слоя можно также воспользоваться такими свойствами, как отображение объектов на определенном масштабе. Реализация данной возможности представлена в листинге ниже:
workLayer.usebounds = true;
workLayer.MinScale = 2000;
workLayer.MaxScale = 15000;
В данном примере объекты слоя будут видны только при масштабе от 2000 до 15000.
Также есть очень похожее по эффекту свойство MinObjectSize. Это свойства устанавливает минимальный размер объекта в пикселях, который будет виден. Если при навигации по карте вы отдалились от объекта, и он стал меньше, чем указано в данном свойстве, то он просто не будет отображаться.
Свежие комментарии