1、定义渲染器线符号:
1)、自定义线符号
Dim Linesymbol As CIMLineSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.RedRGB,width ,SimpleLineStyle)
width: 要构造的线条符号的宽度。
SimpleLineStyle:类型见下表:如一条虚线:SimpleLineStyle.Dot
成员 | 描述 |
Dash | 具有长破折号和短空格重复模式的虚线。 |
DashDot | 具有重复模式的虚线-空格-小破折号-空格。 |
DashDotDot | 具有破折号空间-小破折号空间-小破折号空间的重复模式的虚线。 |
Dot | 一条虚线,具有均匀分布的小破折号的重复模式。 |
Null | 不绘制的空线。 |
Solid | 没有破折号的简单实线。 |
Dim Linesymbol As CIMLineSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.RedRGB,1.0 ,SimpleLineStyle.Dot)
2)、调用已有的样式
'获取当前工程中的所有样式
Dim symbolToApply As CIMSymbol
Dim Pitem As SymbolStyleItem
Dim symbol_dic = Project.Current.GetItems(Of StyleProjectItem)
'按名称获取样式
Dim style As StyleProjectItem = symbol_dic.First(Function(x) x.Name = "SDFHK")
Await QueuedTask.Run(Sub()
Dim key As String = "JZX"
Pitem = style.LookupItem(StyleItemType.LineSymbol, key)
End Sub)
symbolToApply = Pitem.Symbol
2、获得层的渲染器
Dim currentRenderer As CIMSimpleRenderer = pFeatureLayer.GetRenderer
3、图层渲染
'更新当前简单渲染器的符号引用
currentRenderer.Symbol = symbolToApply.MakeSymbolReference()
'更新要素图层渲染器
pFeaturelayer.SetRenderer(currentRenderer)