styleObj用于设置图层的符号。它在classObj中定义,一般于symbolObj一起使用。通过设置styleObj,可以产生千变万化,丰富多彩的地图。
一个简单的styleObj示例:
CLASS
NAME "Primary Roads"
STYLE
SYMBOL "circle"
COLOR 178 114 1
SIZE 15
END #style1
STYLE
SYMBOL "circle"
COLOR 254 161 0
SIZE 7
END #style2
END
从以上示例可以看出,在CLASS对象中包含了两个STYLE对象,每个STYLE对象代表了一个符号,两个STYLE对象叠加可以产生一个复合符号:具有两种颜色的道路线。
效果如下图,STYLE一宽度为15像素,位于底层,STYLE二宽度7像素,位于上层,形成一条复合线:
通过多个style叠加的方式,可以实现多种复杂的符号效果。
在csharp_mapscript中可以方便的修改图层的符号以及动态生成符号,如下有几段示例常用代码:
//创建一个styleObj对象
styleObj pStyle = new styleObj(null);
//在class对象中创建一个styleObj对象
styleObj pStyle = new styleObj(pLayerObj.getClass(0));
//从class对象中获取一个styleObj对象
styleObj pStyle = m_ pLayerObj.getClass(0).getStyle(0);
通过以上的代码都可以获得一个style对象,通过修改style对象,可以设置各种参数来生成不同的地图符号,通常需要配合symbol对象使用。
styleObj pStyle = new styleObj(pClassObj);
//设置symbol对象
pStyle.setSymbolByName(pMapObj, “symbolname”);
//设置符号的颜色
pStyle.color = new colorObj(100, 100, 100, 0);
//设置符号的尺寸大小
pStyle.size = 8;
//设置符号的边线宽度,对点和线符号有效
pStyle.outlinewidth = 1;
//设置符号的边线颜色,对点和线符号有效
pStyle.outlinecolor = new colorObj(0, 0, 0, 0);