arcgis二次开发
Arcgis二次开发代码示例
一.数据:一些点的测试:选择的测试数据集 字段:name
和编号
二.一些函数
-
注册
static void RegisterFunction(Type registerType) //注册组件类别的方法 static void UnregisterFunction(Type registerType) //取消注册
-
region ArcGIS 组件类别注册器生成的代码
private static void ArcGISCategoryRegistration(Type registerType) //同上注册 private static void ArcGISCategoryUnregistration(Type registerType) //组件注销
-
构造函数
ZoomToLayer()
base.m_category
:定义该命令的类别,通常用于组织命令。例如,"Developer Samples" 表示它是开发人员样例的一部分。base.m_caption
:定义命令的标题,在 ArcMap 界面上显示。base.m_message
:命令的描述消息,通常在工具提示或状态栏显示。base.m_toolTip
:命令的工具提示文本,在鼠标悬停时显示。base.m_name
:命令的唯一标识符,通常是一个非本地化的字符串,用于在代码中唯一标识该命令。这些属性的值基本上用于命令的本地化和描述,便于用户识别和使用。
-
Overriden Class Methods 一些方法的重写
-
OnCreate
的重写:-
summary
:描述了该方法的作用——在命令创建时调用。这是 ArcGIS 命令生命周期中的一个方法,通常用于初始化命令的属性。 -
param
:hook
参数是 ArcGIS 应用程序的实例,它通常是IApplication
类型,代表 ArcMap 或 ArcCatalog 应用程序。 -
OnCreate
方法:该方法在命令创建时被调用,通常用于初始化命令的状态。在这个例子中,方法的作用是:- 将
hook
转换为IApplication
类型,以便访问 ArcMap 或 ArcCatalog 的功能。 - 检查当前应用程序是否是 ArcMap。如果是,则启用命令;如果不是,则禁用命令。
- 将
这个方法是 ArcGIS 自定义命令的重要一环,确保命令的启用与 ArcMap 的应用环境兼容。如果命令在其他类型的应用程序(如 ArcCatalog)中无效,它会被禁用。
-
-
OnClick
方法:该方法是自定义命令中用户点击按钮时执行的逻辑。在这个例子中:- 它获取了当前 ArcMap 文档的
IMxDocument
实例,可能用于后续的操作(如地图视图操作)。 - 它创建并显示了一个自定义窗体
NeuForm
,该窗体可能用于显示信息或与用户交互。 - 被注释掉的部分
ZoomToLayerInTOC(mxDocument)
可能是用于缩放到 TOC 中选中的图层,但此功能目前被禁用了。
- 它获取了当前 ArcMap 文档的
-
-
Zoom to Active Layer in TOC 缩放到 TOC 中的活动图层
ZoomToLayerInTO()
-
layer.AreaOfInterest
:获取选中图层的兴趣区域(通常是该图层的边界框)。AreaOfInterest
是一个表示图层可见区域的矩形,通常用于地图缩放。 -
activeView.Extent
:将活动视图的显示范围设置为图层的兴趣区域,实现 缩放到图层 的功能。 -
activeView.Refresh()
:刷新活动视图,使得地图显示更新后的区域。
-
-
Get MxDocument from ArcMap
获取来自 ArcMap 的 MxDocumentIMxDocument
是 ArcMap 中的一个接口,表示当前的地图文档,包含了地图视图、图层和其他文档相关的信息。这段代码实现了一个名为
GetMxDocument
的方法,用于从 ArcMap 中获取IMxDocument
接口。IMxDocument
是 ArcMap 中的一个核心接口,表示当前地图文档,包含了地图视图、图层和其他相关的地图数据获取之后 return的是
mxDocument
三.按钮的点击事件与交互
-
成员变量
m_application
:存储IApplication
类型的变量,表示 ArcMap 应用程序实例。m_pDoc
:存储IMxDocument
类型的变量,表示当前 ArcMap 文档(地图文档)。m_pAV
:存储IActiveView
类型的变量,表示当前地图的活动视图。m_pFeature
:存储IFeature
类型的变量,表示选中的地理要素。m_ActiveViewEventsViewRefreshed
:用于事件处理,可能与视图刷新的事件相关。 -
初始化窗口的方法(默认)不用更改
-
选择图层特征
SelectMapFeaturesByAttributeQuery
方法public IFeature SelectMapFeaturesByAttributeQuery(ESRI.ArcGIS.Carto.IActiveView activeView, ESRI.ArcGIS.Carto.IFeatureLayer featureLayer, System.String whereClause)
-
SelectMapFeaturesByAttributeQuery
方法:通过属性查询
whereClause
选择指定图层的地理要素。featureLayer
:传入的图层,用于选择其中的要素。whereClause
:查询条件,用于选择特定的要素。IActiveView
:更新地图视图以显示选择的要素。- 通过
IFeatureSelection
接口执行选择操作,使用SelectFeatures
方法将符合条件的要素添加到选择集中,并刷新视图。
-
-
按钮的点击事件,绑定方法即可
四.修改地方 对查询语句进行修改即可
五.对高亮方法的重写
重点在于不要与Arcgis中选择的蓝色高亮重合