//根据书签名字返回书签 和 索引 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(); } }
public int OnPopup(object hook) { m_HookHelper.Hook = hook; //Get the bookmarks of the focus map IMapBookmarks mapBookmarks = (IMapBookmarks)m_HookHelper.FocusMap; //Get bookmarks enumerator IEnumSpatialBookmark enumSpatialBookmarks = mapBookmarks.Bookmarks; enumSpatialBookmarks.Reset(); //Loop through the bookmarks to count them ISpatialBookmark spatialBookmark = enumSpatialBookmarks.Next(); int bookmarkCount = 0; while (spatialBookmark != null) { bookmarkCount = bookmarkCount + 1; spatialBookmark = enumSpatialBookmarks.Next(); } //Return the number of multiitems return(bookmarkCount); }
public string get_ItemCaption(int index) { //Get the bookmarks of the focus map IMapBookmarks mapBookmarks = (IMapBookmarks)m_HookHelper.FocusMap; //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 (bookmarkCount == index) { //Return the bookmark name return(spatialBookmark.Name); } bookmarkCount = bookmarkCount + 1; spatialBookmark = enumSpatialBookmarks.Next(); } return(""); }
private void cmb_Bookmark_SelectedIndexChanged(object sender, EventArgs e) { IMapBookmarks bookmarks = mapControl.Map as IMapBookmarks; IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks; enumSpatialBookmark.Reset(); ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next(); while (spatialBookmark != null) { string index = cmb_Bookmark.SelectedIndex.ToString(); string bm_name = cmb_Bookmark.Items[Convert.ToInt32(index)].ToString(); //Console.WriteLine(bm_name + " "+ spatialBookmark.Name); if (bm_name == spatialBookmark.Name) { spatialBookmark.ZoomTo((IMap)mapControl.ActiveView); mapControl.ActiveView.Refresh(); break; } spatialBookmark = enumSpatialBookmark.Next(); } btn_bmDEL.Visible = true; but_addbm.Visible = false; }
public void OnItemClick(int index) { //Get the bookmarks of the focus map IMapBookmarks mapBookmarks = (IMapBookmarks)m_HookHelper.FocusMap; //Get bookmarks enumerator IEnumSpatialBookmark enumSpatialBookmarks = mapBookmarks.Bookmarks; enumSpatialBookmarks.Reset(); //Loop through the bookmarks to get bookmark to zoom to ISpatialBookmark spatialBookmark = enumSpatialBookmarks.Next(); int bookmarkCount = 0; while (spatialBookmark != null) { //Get the correct bookmark if (bookmarkCount == index) { //Zoom to the bookmark spatialBookmark.ZoomTo(m_HookHelper.FocusMap); //Refresh the map m_HookHelper.ActiveView.Refresh(); } bookmarkCount = bookmarkCount + 1; spatialBookmark = enumSpatialBookmarks.Next(); } }
private void button1_Click(object sender, EventArgs e) //书签视图定位 { TreeNode pselectnode = treeView1.SelectedNode; //获得选中的书签 ISpatialBookmark pspatialbm = pdictionary[pselectnode.Text]; //获得选中的书签对象 pspatialbm.ZoomTo(_currentmap); //缩放到选中的视图范围 IActiveView pactiveview = _currentmap as IActiveView; pactiveview.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); }
private void button2_Click(object sender, EventArgs e) //删除书签 { TreeNode pselectnode = treeView1.SelectedNode; //获得选中的书签 ISpatialBookmark pspatialbm = pdictionary[pselectnode.Text]; //获得选中的书签对象 mapbookmarks.RemoveBookmark(pspatialbm); //删除选中的书签对象 pdictionary.Remove(pselectnode.Text); //删除字典中的数据 treeView1.Nodes.Remove(pselectnode); //删除窗口中的树节点 treeView1.Refresh(); }
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; } }
/// <summary> /// 删除书签 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDelete_Click(object sender, EventArgs e) { TreeNode selectNode = tviewBookMark.SelectedNode; ISpatialBookmark spatialBookmark = pDictionary[selectNode.Text]; // 删除选中的书签对象 pMapBookmarks.RemoveBookmark(spatialBookmark); // 删除字典中的数据 pDictionary.Remove(selectNode.Text); tviewBookMark.Refresh(); }
//地图被替换时,加载地图文档的书签集合 //释放总览窗体,并关闭 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(); }
private void Button1_Click(object sender, EventArgs e) { TreeNode pSelectedNode = treeView1.SelectedNode; //获得选中的书签对象 ISpatialBookmark pSpatialBM = pDictionary[pSelectedNode.Text]; //缩放到选中书签的视图范围 pSpatialBM.ZoomTo(_currentMap); IActiveView pActiveView = _currentMap as IActiveView; pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); }
/// <summary>Exports all bookmarks to PDF files.</summary> /// <param name="directory">The directory that the exported files will be written to.</param> /// <param name="dpi">The resolution of the output files.</param> /// <param name="exportFormat">The format of the exported files.</param> public void ExportBookmarksToFiles(string directory, long dpi, ExportFormat exportFormat) { if (!Directory.Exists(directory)) { throw new DirectoryNotFoundException("Directory not found: " + directory); } IMouseCursor mc = new MouseCursorClass(); const int hourglass = 2; mc.SetCursor(hourglass); IMxDocument mxDoc = _app.Document as IMxDocument; IMapBookmarks bookmarks = (IMapBookmarks)mxDoc.FocusMap; IEnumSpatialBookmark enumBM = bookmarks.Bookmarks; enumBM.Reset(); ISpatialBookmark sbm = enumBM.Next(); ProgressDialogFactoryClass dialogFactory = new ProgressDialogFactoryClass(); var cancelTracker = new CancelTrackerClass(); IStepProgressor stepProgressor = dialogFactory.Create(cancelTracker, _app.hWnd); IProgressDialog2 progDialog = stepProgressor as IProgressDialog2; progDialog.CancelEnabled = true; progDialog.ShowDialog(); stepProgressor.Hide(); stepProgressor.Message = "Exporting..."; // Create a formatting string with the proper extension. (E.g., "{0}.pdf" for PDF files".) string fnFmt = string.Format("{{0}}.{0}", Enum.GetName(typeof(ExportFormat), exportFormat)); try { while (sbm != null) { sbm.ZoomTo(mxDoc.FocusMap); string filename = System.IO.Path.Combine(directory, string.Format(fnFmt, sbm.Name)); ExportPageLayoutToFile(mxDoc.PageLayout, filename, dpi, exportFormat); sbm = enumBM.Next(); } } finally { if (progDialog != null) { progDialog.HideDialog(); ComReleaser.ReleaseCOMObject(progDialog); } } }
/// <summary> /// 书签视图定位 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnLocate_Click(object sender, EventArgs e) { TreeNode selectNode = tviewBookMark.SelectedNode; // 获取选中的书签对象 ISpatialBookmark spatialBookmark = pDictionary[selectNode.Text]; // 缩放在书签所选中的范围 spatialBookmark.ZoomTo(_currentMap); IActiveView activeView = _currentMap as IActiveView; activeView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); }
void tempMenu_Click(object sender, EventArgs e) { ISpatialBookmark bookmark = (sender as ToolStripMenuItem).Tag as ISpatialBookmark; if (bookmark != null) { bookmark.ZoomTo(axMapControl1.Map); //刷新地图 //axMapControl1.ActiveView.Refresh(); axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewAll, null, axMapControl1.ActiveView.Extent); } }
//删除书签 private void BtnDelete_Click_1(object sender, EventArgs e) { TreeNode pSelectedNode = tviewBookMark.SelectedNode; ISpatialBookmark pSpatialBookmark = pDictionary[pSelectedNode.Text]; //删除选中的书签对象 mapBookmarks.RemoveBookmark(pSpatialBookmark); //删除字典中数据 pDictionary.Remove(pSelectedNode.Text); //删除树节点 tviewBookMark.Nodes.Remove(pSelectedNode); tviewBookMark.Refresh(); }
private void Button2_Click(object sender, EventArgs e) { TreeNode pSelectedNode = treeView1.SelectedNode; ISpatialBookmark pSpatialBookmark = pDictionary[pSelectedNode.Text]; //删除选中的书签对象 mapBookmarks.RemoveBookmark(pSpatialBookmark); //删除字典中数据 pDictionary.Remove(pSelectedNode.Text); //删除树节点 treeView1.Nodes.Remove(pSelectedNode); treeView1.Refresh(); }
/* 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 FormManagementBookmark_Load(object sender, EventArgs e) { ISpatialBookmark currentBookmark = m_BookMarks.Next(); while (currentBookmark != null) { //生成一个listviewitem,并且添加到listview1 ListViewItem lvi = new ListViewItem(); lvi.Text = currentBookmark.Name; listView1.Items.Add(lvi); currentBookmark = m_BookMarks.Next(); } }
}//获取空间书签,并对视图初始化 private void InitControl() { mapbookmarks = _currentmap as IMapBookmarks; //获取当前地图的书签集 IEnumSpatialBookmark enumspatialbookmarks = mapbookmarks.Bookmarks; //赋给变量 enumspatialbookmarks.Reset(); ISpatialBookmark pspatialbookmark = enumspatialbookmarks.Next();//选择第一个书签 string sbookmarksname = string.Empty; while (pspatialbookmark != null) //循环,判断是否为空 { sbookmarksname = pspatialbookmark.Name; //书签名字获取 treeView1.Nodes.Add(sbookmarksname); //将其加入到目录树视图 pdictionary.Add(sbookmarksname, pspatialbookmark); //加到索引字典内 pspatialbookmark = enumspatialbookmarks.Next(); //进行下一个书签操作 } }
/// <summary> /// 获取空间书签,对tviewBookmark进行初始化 /// </summary> private void InitControl() { pMapBookmarks = _currentMap as IMapBookmarks; IEnumSpatialBookmark enumSpatialBookmark = pMapBookmarks.Bookmarks; enumSpatialBookmark.Reset(); ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next(); string bookmarkName = string.Empty; while (spatialBookmark != null) { bookmarkName = spatialBookmark.Name; tviewBookMark.Nodes.Add(bookmarkName); pDictionary.Add(bookmarkName, spatialBookmark); spatialBookmark = enumSpatialBookmark.Next(); } }
private void btnZoomTo_Click(object sender, EventArgs e) { //找到用户选中的 ISpatialBookmark m_BookMarks.Reset();//书签指针归零 ISpatialBookmark theBookmark = m_BookMarks.Next(); while (theBookmark != null) { if (theBookmark.Name == listView1.SelectedItems[0].Text) { //调用zoomto theBookmark.ZoomTo(m_AxMapControl.Map); m_AxMapControl.ActiveView.Refresh(); } theBookmark = m_BookMarks.Next(); } }
public void DeleteBookmark(string sBookmarkName) //delete the bookmark named sBookmarkName { IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks; IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks; ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next(); while (spatialBookmark != null) { if (spatialBookmark.Name == sBookmarkName) { bookmarks.RemoveBookmark(spatialBookmark); break; } spatialBookmark = enumSpatialBookmark.Next(); } cbBookmarkList.Items.Remove(sBookmarkName); //Remove the name of the bookmark from the ComboBox }
private void cbBookmarkList_SelectedIndexChanged(object sender, EventArgs e) { IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks; IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks; ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next(); while (spatialBookmark != null) { if ((spatialBookmark.Name) == cbBookmarkList.SelectedItem.ToString()) { spatialBookmark.ZoomTo((IMap)axMapControl1.ActiveView); axMapControl1.ActiveView.Refresh(); break; } spatialBookmark = enumSpatialBookmark.Next(); } }
/// <summary> /// 监听结束书签列表 /// </summary> public Boolean oneBookmark(string name) { IMapBookmarks bookmarks = mapControl.Map as IMapBookmarks; IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks; enumSpatialBookmark.Reset(); ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next(); while (spatialBookmark != null) { if (name == spatialBookmark.Name) { return(false); } spatialBookmark = enumSpatialBookmark.Next(); } return(true); }
private void InitControl() { mapBookmarks = _currentMap as IMapBookmarks; IEnumSpatialBookmark enumSpatialBookmarks = mapBookmarks.Bookmarks; enumSpatialBookmarks.Reset(); ISpatialBookmark pSpatialBookmark = enumSpatialBookmarks.Next(); string sBookMarkName = string.Empty; while (pSpatialBookmark != null) { sBookMarkName = pSpatialBookmark.Name; //增加树节点 treeView1.Nodes.Add(sBookMarkName); //添加到数据字典 pDictionary.Add(sBookMarkName, pSpatialBookmark); pSpatialBookmark = enumSpatialBookmarks.Next(); } }
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); }
private void cbBookmarkList_selectedIndexChanged(object sender, EventArgs e) { // 获取ArcGIS组件的bookmark,并将其转为可枚举值,方便循环 IMapBookmarks bookmark = axMapControl1.Map as IMapBookmarks; IEnumSpatialBookmark enumSpatialBookmark = bookmark.Bookmarks; enumSpatialBookmark.Reset(); ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next(); while (spatialBookmark != null) { if (cbBookmarkList.SelectedItem.ToString() == spatialBookmark.Name) { // 当下拉列表索引指向的名称和bookmark的名称对应时,将保存的bookmark移到视野范围 spatialBookmark.ZoomTo((IMap)axMapControl1.ActiveView); axMapControl1.ActiveView.Refresh(); break; } // 没有命中,继续枚举 spatialBookmark = enumSpatialBookmark.Next(); } }
private void btnOK_Click(object sender, EventArgs e) { IEnumSpatialBookmark bookmarks = (this.imap_0 as IMapBookmarks).Bookmarks; bookmarks.Reset(); ISpatialBookmark bookmark = bookmarks.Next(); while (bookmark != null) { if (bookmark.Name == this.txtBookMarker.Text) { break; } bookmark = bookmarks.Next(); } if (bookmark != null) { if (MessageBox.Show("书签已存在,是否替换!", "书签", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { (bookmark as IAOIBookmark).Location = (this.imap_0 as IActiveView).Extent; base.DialogResult = DialogResult.OK; base.Close(); } } else { nIndex++; bookmark = new AOIBookmarkClass { Name = this.txtBookMarker.Text }; (bookmark as IAOIBookmark).Location = (this.imap_0 as IActiveView).Extent; (this.imap_0 as IMapBookmarks).AddBookmark(bookmark); base.DialogResult = DialogResult.OK; base.Close(); } }