C#ArcEngine二次开发——创建与调用AOI书签
基于ArcEngine10.2和VS2012进行C#ArcEngine二次开发
创建与调用AOI书签
在如图所示的程序主窗体菜单栏中添加一个菜单项“创建书签”,其控件名为“miCreateBookmark”,用于调用“创建书签”窗体;在“创建书签”边上再添加一个组合框,其控件名为“cbBookmarkList”,用于保存已创建的书签名,并且能够在选中某书签名时,缩放到该书签对应的地图区域。
(一)添加类库和引用
在VS2012的资源管理器中添加ArcGIS引用,将ESRI.ArcGIS.Geometry类库的引用添加进项目。在主窗体的代码(即MainForm.cs)中导入ESRI.ArcGIS.Geometry
输入代码:using ESRI.ArcGIS.Geometry
这时如果发现VS提示代码中的Path类冲突,可以改成System.I/O.Path的形式避免冲突
(二)添加创建书签函数
在MainForm类中添加一个成员函数CreateBookmark,用来创建书签
public void CreateBookmark(string sBookmarkName) {IAOIBookmark aoiBookmark = new AOIBookmarkClass();//if (aoiBookmark != null) { aoiBookmark.Location=axMapControl1.ActiveView.Extent;aoiBookmark.Name = sBookmarkName;}//add aoibookmark to mapIMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks;if(bookmarks != null){bookmarks.AddBookmark(aoiBookmark);}//add aoibookmark to the comboxitemcbBookmarkList.Items.Add(aoiBookmark.Name);}
(三)添加窗体
在VS2012的“项目”菜单下的“添加Windows窗体”中,添加一个Windows窗体,将窗体文件命名为”AdmitBookmarkName.cs“.该窗体用于获取用户定义的书签名称,并传递入主窗体。
向窗体中添加两个控件,一个TextBox,用于输入书签名称,控件名为"tbBookmarkName";一个Button,控件名为"btnAdmit"。
接着双击Button,自动生成"Click"事件的缺省的响应函数。
在当前窗体的代码中,添加一个主窗体类型的成员变量m_frmMain,并新建一个构造函数,以主窗体类型对象为参数,用于调用主窗体的相关成员。修改Click事件响应函数,实现书签名的传递。
代码如下:
public MainForm m_frmMain;public AdmitBookmarkName(MainForm frm){InitializeComponent();if (frm != null) {m_frmMain = frm;}}private void btnAdimit_Click(object sender, EventArgs e){if (m_frmMain != null || tbBookmarkname.Text == "") {m_frmMain.CreateBookmark(tbBookmarkname.Text);}this.Close();}
(四)实现创建书签和调用书签功能
为主窗体的”创建书签“按钮生成"Click"事件响应函数并添加代码以实现确认书签名称功能。
private void miCreateBookmark_Click(object sender, EventArgs e){AdmitBookmarkName frmABN = new AdmitBookmarkName(this);frmABN.Show();}
为组合框"cbBookmarkList"生成"SelectedIndexChanged"事件响应函数,添加代码使当组合框中被选中项改变时,地图可以缩放至书签所在区域。
private void cbBookmarkList_SelectedIndexChanged(object sender, EventArgs e){//get bookmark_listIMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks;IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks;//enumSpatialBookmark.Reset();ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next();while (spatialBookmark != null) {if (cbBookmarkList.SelectedItem.ToString() == spatialBookmark.Name){spatialBookmark.ZoomTo((IMap)axMapControl1.ActiveView);axMapControl1.ActiveView.Refresh();break;}spatialBookmark = enumSpatialBookmark.Next();}}
(五)如图所示,创建与调用AOI书签功能添加完毕。
参考书目:《GIS程序设计教程——基于ArcGIS Engine的C#开发实例》张丰,杜震洪,刘仁义 编著
C#ArcEngine二次开发——创建与调用AOI书签相关推荐
- ArcEngine二次开发
ArcEngine二次开发 初识ArcEngine,个人笔记留档 引入主程序 //表示绑定的arcgis产品类型,即绑定arcgis engine. ESRI.ArcGIS.RuntimeManage ...
- c++ Arx二次开发创建椭圆和样条曲线
一.本节课程 c++ Arx二次开发创建椭圆和样条曲线 二.本节要讲解的知识点 1.如何应用C++ ARX二次开发创建椭圆(对AcDbEllipse类的构造函数的直接封装和根据外接矩形来创建椭圆) 2 ...
- NX/UG二次开发创建曲面偏置体
NX/UG二次开发--创建曲面偏置体 创建曲面偏置体 1.曲面偏置 创建曲面偏置体 这里介绍了一种对模型曲面进行偏置来获得偏置体的方法. 1.曲面偏置 void OffsetFace(tag_t fa ...
- NX二次开发-创建图纸尺寸表达式抑制UF_DRF_add_controlling_exp
NX二次开发-创建图纸尺寸表达式抑制UF_DRF_add_controlling_exp #include <uf.h> #include <uf_modl.h> #inclu ...
- Arcgis ArcEngine二次开发: 输出宗地图、宗地草图、权属协议书附图、房产分层分户图、公示图、三调土地利用图、行政区划图、标准分幅图等各种图件
1.Arcgis ArcEngine二次开发: 输出宗地图.宗地草图.权属协议书附图.房产分层分户图.公示图.三调土地利用图.行政区划图.标准分幅图等各种图件 有需要联系QQ:185242573. ...
- UG二次开发 创建圆弧 UF_CURVE_create_arc
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG二次开发 创建圆弧 UF_CURVE_create_arc 代码: //圆心 d ...
- NX二次开发 创建坐标系 UF_CSYS_create_csys()
简介: NX二次开发 创建坐标系 UF_CSYS_create_csys(). 代码: #include "me.hpp"extern DllExport void ufusr(c ...
- mfc中弹出wpf对话框_CAA二次开发-创建对话框
步骤: 1.创建对话框框架 2.实现对话框中按钮的功能 1. 对话框框架搭建 框架搭建与第一节框架搭建一样,再次不再累述.针对对话框框架的搭建,在LocalInterfaces中,有CAADialog ...
- UG\NX二次开发 创建并报告所有装配部件的文本UDO
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG\NX二次开发 创建并报告所有装配部件的文本UDO 效果: 代码: #inclu ...
最新文章
- 如何监听WebView完成加载URL?
- 数据结构:堆和败者树的区别是什么?
- 碎片化学习的三大障碍及破解之道
- 你在乎的--世界在乎的
- 7. Oracle数据加载和卸载
- 工作几天被裁员,难受
- MySQL 索引失效的 15 种场景!
- 基础知识—表达式与语句-表达式
- python中字符串输出乱码怎么解决_Python字符串的encode与decode研究心得乱码问题解决方法(转)...
- 春晓html代码,春晓
- 2-java学习笔记
- Excel控件 Spire.XLS系列教程(2):C# 设置现有 Excel 图表的数据标签样式
- jvm学习--类加载器
- 弹窗整人php源码,整人无限弹窗[附源码]
- SAP MM库存盘点流程
- XSS Overview
- Android数据存储之文件存储
- 红石外汇|每日汇评:黄金多头在美国CPI指数之前仍保持希望
- html+css静态页面还原 拼多多网页
- 突然悟到了“追求卓越”的真谛