Пример #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
        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);
                }
            }
        }
Пример #3
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;
            }
        }
Пример #4
0
        //地图被替换时,加载地图文档的书签集合
        //释放总览窗体,并关闭
        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);
        }
Пример #6
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();
            }
        }
Пример #7
0
        //添加书签
        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();
        }
Пример #8
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);
        }