Engine 10.1如何将点符号按指定表达式进行旋转?

点要素类渲染,需要按照符号旋转角字段进行符号旋转,然而符号旋转值需要进行一定的计算,经在ArcMap中测试可以实现,因此想用Engine实现此需求。使用旋转接口IRotationRender.RotationField=[符号旋转角]*180/3.14+90,保存mxd后在ArcMap中打开结果却是[[符号旋转角]*180/3.14+90]导致无法正常旋转。请问是哪里出错了?
已邀请:

朱新颖

赞同来自:

【解决办法】:
IRotationRenderer.RotationField只能设置按指定字段进行旋转,如果是表达式的需要使用IRotationRenderer2,参考下面代码:


IRotationRenderer2 rotationRenderer = (IRotationRenderer2)simpleRenderer;
rotationRenderer.SetSymbolRotation3DExpressions(, , [符号旋转角] * 180 / 3.14 + 90);
rotationRenderer.SetSymbolRotation3DFlags(esriSymbolRotation3DFlags.esriSymbolRotation3DNone, esriSymbolRotation3DFlags.esriSymbolRotation3DNone, esriSymbolRotation3DFlags.esriSymbolRotation3DUseExpressionZ);
rotationRenderer.SymbolRotation3DRotationTypeZ = esriSymbolRotationType.esriRotateSymbolArithmetic; 
GeofeatureLayer.Renderer = simpleRenderer as IFeatureRenderer;

要回复问题请先登录注册