ArcMap的书签操作

来源:互联网 发布:6x6摇头矩阵灯 编辑:程序博客网 时间:2024/05/01 17:38

 

空间书签
Spatial Bookmark保存的是地图的范围。就像书签一样可以快速地定位到一个预先定义好的相关主题区域去。空间书签的管理主要是增加、调用、删除空间书签。

空间书签添加
Private Sub AddSpatialBookMark_Click()
    '定义文档对象
    Dim pMxDoc As IMxDocument
    '定义地图对象
    Dim pMap As IMap
    '定义活动视图对象
    Dim pActiveView As IActiveView
    '定义空间书签对象
    Dim pAreaOfInterest As IAOIBookmark
    '定义地图书签集合对象。因为所有的空间书签都是由Map对象来管理的。
    Dim pMapBookmarks As IMapBookmarks
    '取得文档对象
    Set pMxDoc = Application.Document
    '取得焦点Map对象
    Set pMap = pMxDoc.FocusMap
    '设置当前活动视图
    Set pActiveView = pMap
    '创建一个新的空间书签对象,并设置它定位到焦点地图的当前可视范围
    Set pAreaOfInterest = New AOIBookmark
    Set pAreaOfInterest.Location = pActiveView.Extent
    '设置空间书签的名称属性
    pAreaOfInterest.Name = "My bookmark"
    '取得当前地图书签集合对象
    Set pMapBookmarks = pMap
    '把空间书签加入到集合中
    pMapBookmarks.AddBookmark pAreaOfInterest
End Sub

空间书签调用
Private Sub ZoomToBookmark_Click()
    '定义文档对象
    Dim pMxDoc As IMxDocument
    '定义地图书签集合对象
    Dim pMapBookmarks As IMapBookmarks
    '定义空间书签集合
    Dim pEnumBookmarks As IEnumSpatialBookmark
    '定义空间书签
    Dim pBookmark As ISpatialBookmark
    '取得文档对象
    Set pMxDoc = Application.Document
    '取得地图书签集合
    Set pMapBookmarks = pMxDoc.FocusMap
    '取得空间书签集合
    Set pEnumBookmarks = pMapBookmarks.Bookmarks
    '重置空间书签集合,把索引指针归到最开始
    pEnumBookmarks.Reset
    '取得第一个空间书签
    Set pBookmark = pEnumBookmarks.Next
    '一直执行直到遍历了所有空间书签
    Do While Not pBookmark Is Nothing
        '判断是否是目标书签
        If pBookmark.Name = "My bookmark" Then
            '如果是目标书签则调用目标书签的ZoomTo方法,把当前地图可视范围设置成书签范围.
            pBookmark.ZoomTo pMxDoc.FocusMap
            '刷新文档的活动视图
            pMxDoc.ActiveView.Refresh
            '退出过程
            Exit Sub
        End If
        '取得下一条空间书签
        Set pBookmark = pEnumBookmarks.Next
    Loop
End Sub