arcengine获取图层要素_arcengine创建要素类、图层的方法

别人写的,感觉不错

///

2        /// 创建要素类

3        ///

4        /// IWorkspace或者IFeatureDataset对象

5        /// 要素类名称

6        /// 空间参考

7        /// 要素类型

8        /// 几何类型

9        /// 字段集

10        /// CLSID值

11        /// EXTCLSID值

12        /// 配置信息关键词

13        /// 返回IFeatureClass

14        public static IFeatureClass CreateFeatureClass(object pObject, string pName, ISpatialReference pSpatialReference, esriFeatureType pFeatureType,

15                                       esriGeometryType pGeometryType, IFields pFields, UID pUidClsId, UID pUidClsExt, string pConfigWord)

16        {

17            错误检测#region 错误检测

18            if (pObject == null)

19            {

20                throw (new Exception("[pObject] 不能为空!"));

21            }

22            if (!((pObject is IFeatureWorkspace) || (pObject is IFeatureDataset)))

23            {

24                throw (new Exception("[pObject] 必须为IFeatureWorkspace 或者 IFeatureDataset"));

25            }

26            if (pName.Length == 0)

27            {

28                throw (new Exception("[pName] 不能为空!"));

29            }

30            if ((pObject is IWorkspace) && (pSpatialReference == null))

31            {

32                throw (new Exception("[pSpatialReference] 不能为空(对于单独的要素类)"));

33            }

34            #endregion

35

36            pUidClsID字段为空时#region pUidClsID字段为空时

37            if (pUidClsId == null

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ArcEngine中实现点要素图层的唯一值符号化,您可以按照以下步骤进行操作: 1. 打开要素获取要素集合。使用IFeatureClass接口打开要素,并使用IFeatureCursor接口获取要素集合。 ```csharp IFeatureClass featureClass = ...; // 打开要素 IFeatureCursor featureCursor = featureClass.Search(null, false); // 获取要素集合 ``` 2. 创建唯一值符号化渲染器。使用ISimpleRenderer接口创建一个新的SimpleRenderer对象,并使用IUniqueValueRenderer接口将其转换为唯一值符号化渲染器。 ```csharp ISimpleRenderer simpleRenderer = new SimpleRenderer(); IUniqueValueRenderer uniqueValueRenderer = simpleRenderer as IUniqueValueRenderer; ``` 3. 设置字段和符号。指定用于唯一值分的字段,并为每个唯一值设置符号。 ```csharp uniqueValueRenderer.FieldCount = 1; // 设置字段数量 uniqueValueRenderer.set_Field(0, "FieldName"); // 设置用于分的字段名称 // 为每个唯一值设置符号 ISymbol symbol = ...; // 设置符号 uniqueValueRenderer.AddValue("Value1", "", symbol); // 添加第一个唯一值和对应的符号 uniqueValueRenderer.AddValue("Value2", "", symbol); // 添加第二个唯一值和对应的符号 // ... // 可以重复上述步骤为更多唯一值设置符号 ``` 4. 应用渲染器到图层获取要素图层对象,并将唯一值符号化渲染器应用到图层的渲染器属性中。 ```csharp IFeatureLayer featureLayer = ...; // 获取要素图层对象 featureLayer.Renderer = uniqueValueRenderer as IFeatureRenderer; // 应用渲染器到图层 ``` 5. 刷新地图并显示唯一值符号化的结果。调用IMap接口的Refresh方法刷新地图,并使用IActiveView接口的Refresh和PartialRefresh方法来更新显示。 ```csharp IMap map = ...; // 获取地图对象 map.Refresh(); // 刷新地图 IActiveView activeView = map as IActiveView; activeView.Refresh(); // 刷新活动视图 activeView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); // 部分刷新,更新地理数据 ``` 请根据您的具体需求自行填充代码中的缺失部分,例如打开要素、设置字段和符号等。希望这些信息对您有所帮助!如有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值