### ArcEngine 显示图层属性知识点详解 #### 一、ArcEngine概述 ArcEngine是Esri公司提供的一个桌面GIS开发平台,它包含了丰富的组件库,允许开发者创建自定义的地理信息系统(GIS)应用。ArcEngine提供了强大的数据管理、分析、可视化等功能,并且支持多种编程语言如C#、VB.NET等。 #### 二、图层属性对话框调用方法 在ArcEngine中,调用封装好的图层属性对话框是一种常见的操作,主要用于编辑和查看地图图层的各种属性。下面将详细介绍如何通过ArcEngine API来实现这一功能。 #### 三、代码解析 ```csharp if (layer != null) { ESRI.ArcGIS.Framework.IComPropertySheet pComPropSheet; pComPropSheet = new ESRI.ArcGIS.Framework.ComPropertySheet(); pComPropSheet.Title = layer.Name + "-"; // 设置对话框的标题 ESRI.ArcGIS.esriSystem.UID pPPUID = new ESRI.ArcGIS.esriSystem.UIDClass(); pComPropSheet.AddCategoryID(pPPUID); // 添加通用分类ID // 添加多个属性页 ESRI.ArcGIS.Framework.IPropertyPage pGenPage = new ESRI.ArcGIS.CartoUI.GeneralLayerPropPageClass(); pComPropSheet.AddPage(pGenPage); ESRI.ArcGIS.Framework.IPropertyPage pSrcPage = new ESRI.ArcGIS.CartoUI.FeatureLayerSourcePropertyPageClass(); pComPropSheet.AddPage(pSrcPage); ESRI.ArcGIS.Framework.IPropertyPage pSelectPage = new ESRI.ArcGIS.CartoUI.FeatureLayerSelectionPropertyPageClass(); pComPropSheet.AddPage(pSelectPage); ESRI.ArcGIS.Framework.IPropertyPage pDispPage = new ESRI.ArcGIS.CartoUI.FeatureLayerDisplayPropertyPageClass(); pComPropSheet.AddPage(pDispPage); ESRI.ArcGIS.Framework.IPropertyPage pDrawPage = new ESRI.ArcGIS.CartoUI.LayerDrawingPropertyPageClass(); pComPropSheet.AddPage(pDrawPage); ESRI.ArcGIS.Framework.IPropertyPage pFieldsPage = new ESRI.ArcGIS.CartoUI.LayerFieldsPropertyPageClass(); pComPropSheet.AddPage(pFieldsPage); ESRI.ArcGIS.Framework.IPropertyPage pQueryPage = new ESRI.ArcGIS.CartoUI.LayerDefinitionQueryPropertyPageClass(); pComPropSheet.AddPage(pQueryPage); ESRI.ArcGIS.Framework.IPropertyPage pSelPage = new ESRI.ArcGIS.CartoUI.LayerLabelsPropertyPageClass(); pComPropSheet.AddPage(pSelPage); ESRI.ArcGIS.Framework.IPropertyPage pJoinPage = new ESRI.ArcGIS.ArcMapUI.JoinRelatePageClass(); pComPropSheet.AddPage(pJoinPage); // 设置活动页面为符号化页面 ESRI.ArcGIS.esriSystem.ISet pMySet = new ESRI.ArcGIS.esriSystem.SetClass(); pMySet.Add(layer); pMySet.Reset(); pComPropSheet.ActivePage = 4; // 一般情况下,符号化页面的索引为4 // 显示属性对话框并更新图层 pComPropSheet.EditProperties(pMySet, 0); ISceneGraph pScene = m_sceneControl.Scene.SceneGraph; pScene.Invalidate(layer, true, false); pScene.ActiveViewer.Redraw(true); pScene.RefreshViewers(); } ``` #### 四、图层属性对话框组成部分 1. **通用属性**:通常包含图层的基本信息,比如名称、类型、数据源等。 2. **数据源属性**:显示图层的数据源信息,包括连接方式、路径等。 3. **选择集属性**:用于设置或查看当前图层的选择集。 4. **显示属性**:用于控制图层在地图上的显示效果,如透明度、可见性等。 5. **符号化属性**:设置图层的符号化方案,包括颜色、大小、样式等。 6. **字段属性**:列出图层中的所有字段及其属性。 7. **定义查询属性**:设置用于筛选图层内容的定义查询语句。 8. **标签属性**:用于控制图层上是否显示标签以及标签的格式。 9. **连接与关联属性**:管理图层之间的连接和关联关系。 #### 五、应用场景 1. **地图编辑**:在编辑地图时,需要调整图层的显示效果或者设置特定的符号化方案。 2. **数据管理**:对图层的数据源进行修改或配置连接参数。 3. **查询操作**:设置定义查询来过滤图层内容,例如根据某些属性值显示特定的要素。 4. **高级可视化**:通过调整图层的符号化和标签设置,实现更复杂的可视化效果。 #### 六、注意事项 - 在实际使用中,可能需要根据具体需求添加额外的功能或逻辑处理。 - 需要确保ArcEngine环境正确安装并配置了必要的开发环境。 - 考虑到性能问题,对于大数据量的图层,在调用属性对话框之前最好先做一些预处理工作。 通过以上分析,我们可以看到,调用ArcEngine封装好的图层属性对话框是一项非常实用的功能,它能够帮助用户快速地编辑和管理图层的各种属性,从而实现更加灵活的地图定制和数据分析。
{
ESRI.ArcGIS.Framework.IComPropertySheet pComPropSheet;
pComPropSheet = new ESRI.ArcGIS.Framework.ComPropertySheet();
pComPropSheet.Title = layer.Name + " - ÊôÐÔ";
ESRI.ArcGIS.esriSystem.UID pPPUID = new ESRI.ArcGIS.esriSystem.UIDClass();
pComPropSheet.AddCategoryID(pPPUID);
// General....
ESRI.ArcGIS.Framework.IPropertyPage pGenPage = new ESRI.ArcGIS.CartoUI.GeneralLayerPropPageClass();
pComPropSheet.AddPage(pGenPage);
// Source
ESRI.ArcGIS.Framework.IPropertyPage pSrcPage = new ESRI.ArcGIS.CartoUI.FeatureLayerSourcePropertyPageClass();
pComPropSheet.AddPage(pSrcPage);
// Selection...
ESRI.ArcGIS.Framework.IPropertyPage pSelectPage = new ESRI.ArcGIS.CartoUI.FeatureLayerSelectionPropertyPageClass();
pComPropSheet.AddPage(pSelectPage);
// Display....
ESRI.ArcGIS.Framework.IPropertyPage pDispPage = new ESRI.ArcGIS.CartoUI.FeatureLayerDisplayPropertyPageClass();
pComPropSheet.AddPage(pDispPage);
// Symbology....
ESRI.ArcGIS.Framework.IPropertyPage pDrawPage = new ESRI.ArcGIS.CartoUI.LayerDrawingPropertyPageClass();
pComPropSheet.AddPage(pDrawPage);
// Fields...
- 熠熠剩灰2018-03-15就从别的代码里面拷贝了一个if语句,函数都没拷全。 就这还要5分,这不明抢吗?
- 粉丝: 97
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ssm学院党员管理系统+jsp.zip
- ssm学生信息管理系统+jsp.zip
- ssm学校运动会信息管理系统+jsp.zip
- ssm学生宿舍管理+jsp.zip
- ssm学生公寓管理中心系统的设计与实现+jsp.zip
- ssm学生请假系统+jsp.zip
- ssm学生公寓管理系统的设计与实现+jsp.zip
- ssm学生成绩管理系统+vue.zip
- 西门子s7 200smart与3台力士乐变频器通讯程序 原创可直接用于生产的程序,程序带注释,并附送触摸屏程序,有接线方式和设置,通讯地址说明等 程序采用轮询,可以后续根据要求适当修改后扩展 器件
- ssm削面快餐店点餐服务系统的设计与实现+jsp.zip
- ssm新生报到系统+jsp.zip
- ssm选课排课系统的设计与开发+vue.zip
- ssm星空游戏购买下载平台的设计与实现+jsp.zip
- ssm校园一卡通系统软件的设计与实现+jsp.zip
- ssm校园自助洗衣系统的分析与设计+jsp.zip
- ssm校园资讯推荐系统+jsp.zip