示例#1
0
        //根据书签名字返回书签 和 索引
        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();
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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("");
        }
示例#4
0
        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;
        }
示例#5
0
        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();
            }
        }
示例#6
0
        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);
        }
示例#7
0
        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();
        }
示例#8
0
        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();
        }
示例#10
0
文件: FormMain.cs 项目: yiyi99/YCMap
        //地图被替换时,加载地图文档的书签集合
        //释放总览窗体,并关闭
        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();
        }
示例#11
0
        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);
        }
示例#14
0
文件: FormMain.cs 项目: yiyi99/YCMap
        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);
            }
        }
示例#15
0
        //删除书签
        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();
        }
示例#16
0
        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();
        }
示例#17
0
        /* 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();
            }
        }
示例#18
0
        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();
            }
        }
示例#19
0
        }//获取空间书签,并对视图初始化

        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();
            }
        }
示例#21
0
        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();
            }
        }
示例#22
0
        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
        }
示例#23
0
        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();
            }
        }
示例#24
0
        /// <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);
        }
示例#25
0
        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();
            }
        }
示例#26
0
        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);
        }
示例#27
0
        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();
            }
        }
示例#28
0
        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();
            }
        }