//根据书签名字返回书签 和 索引 public void findByName(string bmName, ref ISpatialBookmark outBM, ref int outIndex) { //Get the bookmarks of the focus map IMapBookmarks mapBookmarks = (IMapBookmarks)pMap; //Get bookmarks enumerator IEnumSpatialBookmark enumSpatialBookmarks = mapBookmarks.Bookmarks; enumSpatialBookmarks.Reset(); //Loop through the bookmarks to get bookmark names ISpatialBookmark spatialBookmark = enumSpatialBookmarks.Next(); int bookmarkCount = 0; while (spatialBookmark != null) { //Get the correct bookmark if (spatialBookmark.Name == bmName) { outBM = spatialBookmark; outIndex = bookmarkCount; break; } bookmarkCount = bookmarkCount + 1; spatialBookmark = enumSpatialBookmarks.Next(); } }
private void btnOK_Click(object sender, System.EventArgs e) { IMapBookmarks pBookmarks = m_pMap as IMapBookmarks; if (pBookmarks != null) { bool flag = false; IEnumSpatialBookmark bookmarks = pBookmarks.Bookmarks; ISpatialBookmark pBookmark; bookmarks.Reset(); while ((pBookmark = bookmarks.Next()) != null) { if (pBookmark.Name == txtBookmarkName.Text) { break; } } if (!flag) { frmCreateBookmarkView.nIndex = frmCreateBookmarkView.nIndex + 1; pBookmark = new AOIBookmarkClass() { Name = txtBookmarkName.Text, Location = (m_pMap as IActiveView).Extent }; pBookmarks.AddBookmark(pBookmark); } } }
private void frmManageBookMarker_Load(object sender, EventArgs e) { IEnumSpatialBookmark bookmarks = (this.imap_0 as IMapBookmarks).Bookmarks; bookmarks.Reset(); for (ISpatialBookmark bookmark2 = bookmarks.Next(); bookmark2 != null; bookmark2 = bookmarks.Next()) { this.listView1.Items.Add(bookmark2.Name).Tag = bookmark2; } }
//地图被替换时,加载地图文档的书签集合 //释放总览窗体,并关闭 private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e) { /* * 获取地图,然后,获取书签集合 * 如果地图有书签,遍历书签,每个书签创建一个菜单 * 如果没书签,直接return; */ //获取书签集合 IMapBookmarks mapBookmarks = axMapControl1.Map as IMapBookmarks; IEnumSpatialBookmark bookmarks = mapBookmarks.Bookmarks; //获取当前书签 ISpatialBookmark currentBookmark = bookmarks.Next(); //如果没书签直接退出函数,有,则删除原地图文档的书签菜单,并添加一个分割条 if (currentBookmark == null) { return; } else { Int32 bookmarksStartMenuCount = menuBookmarks.DropDownItems.Count; if (bookmarksStartMenuCount > 2)//有其他地图书签时 { for (int i = 2; i < bookmarksStartMenuCount; i++) { menuBookmarks.DropDownItems.RemoveAt(2); } } //添加一个分割条 menuBookmarks.DropDownItems.Add(new ToolStripSeparator()); } //遍历书签菜单,添加菜单 ToolStripMenuItem tempMenu = null; while (currentBookmark != null) { tempMenu = new ToolStripMenuItem(currentBookmark.Name); tempMenu.Click += new EventHandler(tempMenu_Click); //存储书签 tempMenu.Tag = currentBookmark; menuBookmarks.DropDownItems.Add(tempMenu); currentBookmark = bookmarks.Next(); } //释放总览窗体并关闭 CloseOverviewForm(); }
/// <summary> /// 添加书签 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAddBookMark_Click(object sender, EventArgs e) { FormBookmark formBookmark = new FormBookmark(); formBookmark.ShowDialog(); string pName = string.Empty; pName = formBookmark.BookMark; if (!formBookmark.Check || string.IsNullOrEmpty(pName)) { return; } // 书签进行重命名判断 IMapBookmarks mapBookmarks = MainMapControl.Map as IMapBookmarks; IEnumSpatialBookmark enumSpatialBookmark = mapBookmarks.Bookmarks; enumSpatialBookmark.Reset(); ISpatialBookmark spatialBookmark; while ((spatialBookmark = enumSpatialBookmark.Next()) != null) { if (pName == spatialBookmark.Name) { DialogResult dr = MessageBox.Show("书签重命名,时候替换?", "提示", MessageBoxButtons.YesNoCancel); switch (dr) { case DialogResult.Yes: mapBookmarks.RemoveBookmark(spatialBookmark); break; case DialogResult.No: formBookmark.ShowDialog(); break; default: return; } } } // 获取当前地图的对象 IActiveView activeView = MainMapControl.Map as IActiveView; // 创建一个新的书签并设置其位置为当前视图范围 IAOIBookmark pBookmark = new AOIBookmark(); pBookmark.Location = activeView.Extent; // 获得书签名称 pBookmark.Name = pName; // 通过IMapBookmarks访问当前地图书签集,添加书签到地图的书签集中 IMapBookmarks pMapBookmarks = MainMapControl.Map as IMapBookmarks; pMapBookmarks.AddBookmark(pBookmark); }
/* Function: Load_Bookmark * Usage: load the opening map's bookmark into select-bookmark combobox * Input: sBookmarkName = the name of bookmark introducted * Output: a spatial reference * Author: JL Ding * Time: 2019/03/08 */ private void Load_Bookmark() { IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks; //get the map's bookmark through axMapControl1.Map IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks; enumSpatialBookmark.Reset(); ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next(); while (spatialBookmark != null) { cbBookmarkList.Items.Add(spatialBookmark.Name); spatialBookmark = enumSpatialBookmark.Next(); } }
//添加书签 private void Button1_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(this.textBox1.Text)) { return; } //书签进行重名判断 IMapBookmarks mapBookmarks = mainForm.mainform.mainMapControl.Map as IMapBookmarks; IEnumSpatialBookmark enumSpatialBookmarks = mapBookmarks.Bookmarks; enumSpatialBookmarks.Reset(); ISpatialBookmark pSpatialBookmark; while ((pSpatialBookmark = enumSpatialBookmarks.Next()) != null) { if (this.textBox1.Text == pSpatialBookmark.Name) { DialogResult dr = MessageBox.Show("此书签名已存在!是否替换?", "提示", MessageBoxButtons.YesNo); if (dr == DialogResult.Yes) { mapBookmarks.RemoveBookmark(pSpatialBookmark); } else if (dr == DialogResult.No) { return; } } } //获取当前地图的对象 IActiveView pActiveView = mainForm.mainform.mainMapControl.Map as IActiveView; //创建一个新的书签并设置其位置范围为当前视图的范围 IAOIBookmark pBookmark = new AOIBookmarkClass(); pBookmark.Location = pActiveView.Extent; //获得书签名 pBookmark.Name = this.textBox1.Text; //通过IMapBookmarks接口访问当前地图书签集,添加书签到地图的书签集中 IMapBookmarks pMapBookmarks = mainForm.mainform.mainMapControl.Map as IMapBookmarks; pMapBookmarks.AddBookmark(pBookmark); this.Close(); }
public bool BookmarkExistsOrNot(string sBookmarkName) { IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks; if (bookmarks != null) { IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks; ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next(); while (spatialBookmark != null) { if (spatialBookmark.Name == sBookmarkName) { return(true); } spatialBookmark = enumSpatialBookmark.Next(); } } return(false); }