Skyline二次开发:TE矢量图层样式复制

在制作fly的过程中,需要设置矢量图层的样式,相对应的矢量图层的类型还是比较多的,每种类型中所需要设置的属性也是比较多。基本类型是主要分成3类,点图层、线图层和面图层,线和面图层的扩展类型比较小,点图层包含的类型就比较多,包括图标、文字、模型等。

下图就是一个点图层可以扩展类型的下拉列表:
Skyline二次开发:TE矢量图层样式复制_第1张图片
一种类型的设置参数也相对来说比较多:
Skyline二次开发:TE矢量图层样式复制_第2张图片
在数据制作的过程中,fly数据中包含几个同类型的数据,一个一个设置这些图层的属性还是相当费时间的,这时,通过程序开发,就可在一个图层设置完成的情况下,将图层的样式进行复制。

具体的实现方式是:

1、先获取到设置好的矢量图层,即源图层,使用ProjectTree.FindItem(itemid)或其他方式;

2、获取需要设置的矢量图层,即目标图层,使用ProjectTree.FindItem(itemid)或其他方式

3、将样式的属性做成列表,就如上图的那些Text、Text Color等英文属性做成程序可循环的列表;

4、一个图层一般都包含一个FeatureGroup,有些图层也包含注记图层(Annotation),通过FeatureGroups[0]可以获取到主要图层,通过FeatureGroups.Annotation可以获取到注记图层;

5、FeatureGroup里有SetClassification和SetProperty可以设置图层的样式,这些样式通过GetProperty和GetClassification从源图层中进行循环获取;

6、将样式列表循环完成,刷新完图层就显示新样式;

7、SetClassification和SetProperty的区别,使用代码FeatureGroup.IsClassified(propertyName)可进行判断,具体体现在数据制作上为

普通属性,使用SetProperty
Skyline二次开发:TE矢量图层样式复制_第3张图片
多样式属性:使用SetClassification
Skyline二次开发:TE矢量图层样式复制_第4张图片
技术交流群:665060698
微信公众号:
Skyline二次开发:TE矢量图层样式复制_第5张图片

你可能感兴趣的:(gis)