cannel

 

制图表达(Representation)就是如下图的东西,一个能把样式保存到数据而不用依赖mxd的东东。

在ArcMap中添加这些有制图表达的图层,添加时就会自动加载制图表达作为样式。但在AE中,添加图层时制图表达不会自动使用,需要如下代码

1.先获取IRepresentationWorkspaceExtension接口

                IWorkspaceExtensionManager tWorkspaceExtManager = tWorkspace as IWorkspaceExtensionManager;
                UID tUID = new UIDClass();
                tUID.Value = "{FD05270A-8E0B-4823-9DEE-F149347C32B6}";
                IRepresentationWorkspaceExtension tRepWorkspaceExt = tWorkspaceExtManager.FindExtension(tUID) as IRepresentationWorkspaceExtension;

2.先用FeatureClassRepresentationNames获取FeatureClass对应的IRepresentationClass名称,然后再获取IRepresentationClass,最后实例化RepresentationRendererClass并赋值属性RepresentationClass,此时再把图层添加到MapControl中则带有制图表达。

                    IEnumDatasetName tEnumDatasetName = tRepWorkspaceExt.get_FeatureClassRepresentationNames(pFeatLayer.FeatureClass);
                    tEnumDatasetName.Reset();                 
                    IDatasetName tDatasetName = tEnumDatasetName.Next();
                    if (tDatasetName != null)
                    {
                       IRepresentationClass tRepClass = tRepWorkspaceExt.OpenRepresentationClass(tDatasetName.Name);

                        IRepresentationRenderer tRepresentationRenderer = new RepresentationRendererClass();
                        tRepresentationRenderer.RepresentationClass = tRepClass;

                        tGeoFeatLayer.Renderer = tRepresentationRenderer as IFeatureRenderer;

                     }

 总的思路就是,通过IRepresentationWorkspaceExtension获取该图层对应的IRepresentationClass,从而构成渲染对象IRepresentationRenderer

分类:

技术点:

相关文章:

  • 2021-10-01
  • 2021-11-04
  • 2021-07-02
  • 2021-07-17
  • 2022-12-23
  • 2022-02-09
猜你喜欢
  • 2021-09-10
  • 2022-01-14
  • 2021-09-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
相关资源
相似解决方案