收藏 分享(赏)

空间书签gis.doc

上传人:jinchen 文档编号:5668593 上传时间:2019-03-11 格式:DOC 页数:6 大小:56.50KB
下载 相关 举报
空间书签gis.doc_第1页
第1页 / 共6页
空间书签gis.doc_第2页
第2页 / 共6页
空间书签gis.doc_第3页
第3页 / 共6页
空间书签gis.doc_第4页
第4页 / 共6页
空间书签gis.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、空间书签(组件):1.AOI(实习)2.Feature(地理要素)Name 的数据格式是 string;Location 的数据格式是 IEnvelop(接口);MenuItem-属性:(Name):miBookmark;Text:空间书签ComboBox-属性 (组合框):(name):cbBookmark;创建一个 form 类( 项目):MapControlApplication_空间书签 -添加-windows 窗体-frmBookmark.cs:(Name):frmBookmark;Text:创建空间书签;要在代码中使用 using 语句将命名空间导入,首先要添加相应的参考:引用-A

2、dd ArcGIS Reference-找到 ESRI.ArcGIS.Geometry/使frmBookmark能用原接口using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Geometry;包含两个数据:Private IMap m_map; /地图视图对象 Private ToolStripComboBox m_cbBookmark; /创建组合框的对象/给m_map;m_cbBookmark赋值(用this指针)public frmBookmark(IMap map, ToolStripComboB

3、ox comboBox)InitializeComponent();this.m_map = map;this.m_cbBookmark = comboBox;创建一个 TextBox (tbName)创建一个 Button (btnOK;创建 )String name = tbName.Text.Trim(); /Trim()作用是省略空格if (string.Empty = name) /变量写在后面,用于查错, empty:是否为空MessageBox.Show(“请输入空间书签名称!“); /弹出对话框 elseIActiveView activeView = m_map as IAc

4、tiveView; /格式转换 先定义一个活动视图,把m_map赋值给活动视图IEnvelope extent = activeView.Extent; /定义一个布局视图,活动视图的extent赋值给布局视图/定义一个书签 IAOIBookmark bookmark = new AOIBookmarkClass(); bookmark.Name = name;bookmark.Location = extent;/定义一个书签集,并把书签放入书签集IMapBookmarks bookmarks = m_map as IMapBookmarks;bookmarks.AddBookmark(bo

5、okmark);m_cbBookmark.Items.Add(name); /保存书签MessageBox.Show(“添加书签成功!“);/创建对话框this.Close();/关闭对话框双击空间书签-写代码:/双击空间书签,弹出 frmBookmark 类的对话框frmBookmark frm = new frmBookmark(axMapControl1.Map, cbBookmark); /构造函数frm.Show();选择书签名显示出对应的 map:属性-创建事件-SelectIndexChanged 双击private void cbBookmark_SelectedIndexCh

6、anged(object sender, EventArgs e)IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks;IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks;/reset把指针指向headenumSpatialBookmark.Reset();ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next();while (spatialBookmark != null)if (cbB

7、ookmark.SelectedItem.ToString() = spatialBookmark.Name)spatialBookmark.ZoomTo(IMap)axMapControl1.ActiveView);axMapControl1.ActiveView.Refresh();/refresh更新视图break;spatialBookmark = enumSpatialBookmark.Next();没有重名书签:方法一:private void btnOK_Click(object sender, EventArgs e)string name = tbName.Text.Trim

8、(); /Trim()作用是省略空格IActiveView activeView = m_map as IActiveView; /格式转换 先定义一个活动视图,把活动视图赋值给m_mapIEnvelope extent = activeView.Extent; /定义一个布局视图,活动视图赋值给布局视图/定义一个书签 IAOIBookmark bookmark = new AOIBookmarkClass(); bookmark.Name = name;bookmark.Location = extent;/定义一个书签集,并把书签放入书签集IMapBookmarks bookmarks =

9、 m_map as IMapBookmarks;if (string.Empty = name) /变量写在后面,用于查错MessageBox.Show(“请输入空间书签名称!“); /弹出对话框 else IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks;/reset把指针指向headenumSpatialBookmark.Reset();ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next();bool b =true;while (spatialB

10、ookmark != null)if (name = spatialBookmark.Name)MessageBox.Show(“该书签已存在!“);B=false;this.Close();break;spatialBookmark = enumSpatialBookmark.Next();if (b=true)bookmarks.AddBookmark(bookmark);m_cbBookmark.Items.Add(name); /保存书签名MessageBox.Show(“添加书签成功!“);/创建对话框this.Close();/关闭对话框方法二:bool b = m_cbBookm

11、ark.Items.Contains(name);if (b =true)MessageBox.Show(“.“);this.Close();elsebookmarks.AddBookmark(bookmark);m_cbBookmark.Items.Add(name); /保存书签名MessageBox.Show(“添加书签成功!“);/创建对话框方法三:bool b = true;for (int i = 0; i m_cbBookmark.Items.Count; i+)String str = m_cbBookmark.Itemsi.ToString();if (name = str)

12、b = false;break;if (b = false)MessageBox.Show(“.“);elsebookmarks.AddBookmark(bookmark);m_cbBookmark.Items.Add(name); /保存书签名MessageBox.Show(“添加书签成功!“);/创建对话框保存书签:1.写入 text文件中:frmBookmark中: public void WriteInText()tryString path = “C:UsersuserDocumentsVisual Studio 2005ProjectsMapControlApplication1c

13、bBookmark.txt“;StreamWriter streamwriter = new StreamWriter(path);for (int i = 0; i m_cbBookmark.Items.Count; i+)streamwriter.Write(m_cbBookmark.Itemsi.ToString()+Environment.NewLine);streamwriter.Close();catch Main_form中:private void miBookmark_Click(object sender, EventArgs e)frmBookmark frm = new

14、 frmBookmark(axMapControl1.Map, cbBookmark);frm.Show();frm.WriteInText();2.读取Main_form(load)中:tryString path = “C:UsersuserDocumentsVisual Studio 2005ProjectsMapControlApplication1cbBookmark.txt“;StreamReader streamreader = new StreamReader(path, Encoding.Default);String stringline = String.Empty;while (stringline = streamreader.ReadLine() != null)cbBookmark.Items.Add(stringline.Trim();catch

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报