Arcgis的制图表达博大精深,首先是一个图层转换为制图表达图层,其中的每一个要素都会绑定一个规则ID(Rule_id),
那么在arcengine中,我们如何去编辑制图表达呢?
首先选中制图表达就成了一个问题,因为如果表达有几何覆盖,也就是表达和数据(Feature)的位置不在一起,甚至偏移很大,普通选择Element的方法根本无法选中它,
我们是借助影子表
根据图层得到表达
private IRepresentationClass getRepClassByLayer ( IGeoFeatureLayer pGeoFeatureLayer )
{
if(pGeoFeatureLayer .Renderer is RepresentationRenderer )
{
IRepresentationRenderer pRepresentationRenderer = (IRepresentationRenderer )pGeoFeatureLayer .Renderer ;
return pRepresentationRenderer .RepresentationClass
}
}
然后再根据 IRepresentationClass.GetRepresentation即可获得要素的表达
每一个RepResentation 都有一个Feature 和一个shape ,这个shape是表达的几何图形 ,不是要素的几何图形
那么表达的编辑是如何的呢
首先说一下表达的几何编辑
几何编辑比较简单,说白了就是编辑Representation的shape;
如果是自由制图表达,则编辑其IRepresentationGraphics
编辑就用ITransform2D接口,即可完
那么在arcengine中,我们如何去编辑制图表达呢?
首先选中制图表达就成了一个问题,因为如果表达有几何覆盖,也就是表达和数据(Feature)的位置不在一起,甚至偏移很大,普通选择Element的方法根本无法选中它,
我们是借助影子表
根据图层得到表达
private IRepresentationClass getRepClassByLayer ( IGeoFeatureLayer pGeoFeatureLayer )
{
if(pGeoFeatureLayer .Renderer is RepresentationRenderer )
{
IRepresentationRenderer pRepresentationRenderer = (IRepresentationRenderer )pGeoFeatureLayer .Renderer ;
return pRepresentationRenderer .RepresentationClass
}
}
然后再根据 IRepresentationClass.GetRepresentation即可获得要素的表达
每一个RepResentation 都有一个Feature 和一个shape ,这个shape是表达的几何图形 ,不是要素的几何图形
那么表达的编辑是如何的呢
首先说一下表达的几何编辑
几何编辑比较简单,说白了就是编辑Representation的shape;
如果是自由制图表达,则编辑其IRepresentationGraphics
编辑就用ITransform2D接口,即可完