c+ 代码: 按Direction字段旋转,旋转样式为数学
protected override async void OnClick()
{
var featLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>().First();
await QueuedTask.Run(() =>
{
var render = featLayer.GetRenderer() as CIMSimpleRenderer;
var cimVisualVariableInfoXY = new CIMVisualVariableInfo
{
RandomMax = 360,
RandomMin = 0,
VisualVariableInfoType = VisualVariableInfoType.None
};
var cimExpressionInfoZ = new CIMExpressionInfo
{
Title = "Custom",
ReturnType = ExpressionReturnType.Default,
Expression = "$feature.Direction"
};
var cimVisualVariableInfoZ = new CIMVisualVariableInfo
{
RandomMax = 360,
RandomMin = 0,
VisualVariableInfoType = VisualVariableInfoType.Expression,
ValueExpressionInfo = cimExpressionInfoZ
};
var listCIMVisualVariables = new List<CIMVisualVariable>
{
new CIMRotationVisualVariable {
VisualVariableInfoX = cimVisualVariableInfoXY,
VisualVariableInfoY = cimVisualVariableInfoXY,
VisualVariableInfoZ = cimVisualVariableInfoZ,
RotationTypeZ=SymbolRotationType.Arithmetic,
NormalToSurface = false
}
};
render.VisualVariables = listCIMVisualVariables.ToArray();
featLayer.SetRenderer(render);
});
}
vb 代码:: 按Dzd_name字段旋转,旋转样式为地理
'=======================获取点特征层的渲染器
Dim cimRenderer As CIMSimpleRenderer = pFeatureLayer.GetRenderer
Dim cimVisualVariableInfoXY = New CIMVisualVariableInfo
With cimVisualVariableInfoXY
.RandomMax = 360
.RandomMin = 0
.VisualVariableInfoType = VisualVariableInfoType.None
End With
Dim cimExpressionInfoZ = New CIMExpressionInfo
With cimExpressionInfoZ
.Title = "Custom"
.ReturnType = ExpressionReturnType.Default
.Expression = "$feature." & zd_name
End With
Dim cimVisualVariableInfoZ = New CIMVisualVariableInfo
With cimVisualVariableInfoZ
.RandomMax = 360
.RandomMin = 0
.VisualVariableInfoType = VisualVariableInfoType.Expression
.ValueExpressionInfo = cimExpressionInfoZ
End With
Dim listCIMVisualVariables = New List(Of CIMVisualVariable)
Dim cimRotationVariable = New CIMRotationVisualVariable
With cimRotationVariable
.VisualVariableInfoX = cimVisualVariableInfoXY
.VisualVariableInfoY = cimVisualVariableInfoXY
.VisualVariableInfoZ = cimVisualVariableInfoZ
.RotationTypeZ = SymbolRotationType.Geographic
.NormalToSurface = False
End With
listCIMVisualVariables.Add(cimRotationVariable)
cimRenderer.Symbol = symbolToApply.MakeSymbolReference
cimRenderer.VisualVariables = listCIMVisualVariables.ToArray()
pFeatureLayer.SetRenderer(cimRenderer)