功能开发示例
无论你是用AO还是AE开发,或是采用Add-ins还是Extending ArcObjects模式都只是系统结构模式的区别,具体的功能开发上调用的都是ArcGIS类库中的各个接口,在这一点上他们之间基本是一致的。
下面用一个简单的示例“获得地图中图层数量”做说明介绍
在前面创建的ArcGIS工程中打开cmd1代码文件cmd1.cs,在OnClick事件中添加如下代码
publicoverridevoid OnClick()
{
// TODO: Addcmd1.OnClick implementation
ESRI.ArcGIS.Carto.IMap pMap = m_hookHelper.FocusMap;
int pLyrCount = pMap.LayerCount;
MessageBox.Show(“当前地图中共有图层:“ +pLyrCount.ToString() + “个“, “提示“, MessageBoxButtons.OK,MessageBoxIcon.Information);
}
在普通的AE环境下开发,地图对象Map是从MapControl控件中获得的;而在我们ArcGISDesktop开发工程中地图对象的获得是从IHookHelper接口对象m_hookHelper中获得。它们的差别仅仅是在“入口”位置不一样,下面的开发都是相同的。(其中:m_hookHelper是在我们创建Button按钮时系统已自动创建好了,我们直接拿来用)
程序启动后,直接点击自定义1—按钮1,弹出对话框如下图所示
添加几个图层后,再次点击自定义1—按钮1,弹出对话框如下图所示