예제 #1
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();
            }
        }
예제 #2
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;
        }
예제 #3
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);
        }
        /// <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);
        }
예제 #5
0
        /// <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);
                }
            }
        }
예제 #6
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);
        }
예제 #7
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);
            }
        }
예제 #8
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();
            }
        }
예제 #9
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();
            }
        }
예제 #10
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();
            }
        }