默认头像
路人甲
路人甲
  • 注册日期2004-04-13
  • 发帖数35
  • QQ120641819
  • 铜币272枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1798回复:2

IMapBookMarks的问题

楼主#
更多 发布于:2005-05-24 11:33

我写了一个函数

Public Function GetBookMarkByName(name As String, pMap As IMap) As IAOIBookmark     Dim pMapBkMks As IMapBookmarks     Set pMapBkMks = pMap          If pMapBkMks Is Nothing Then Exit Function     

   Dim pBkMk As ISpatialBookmark     Set pBkMk = pMapBkMks.Bookmarks.Next     If pBkMk Is Nothing Then Exit Function           Do While Not pBkMk Is Nothing         If pBkMk.name = name Then             Set GetBookMarkByName = pBkMk             Exit Function         End If         Set pBkMk = pMapBkMks.Bookmarks.Next     Loop

   Set GetBookMarkByName = Nothing      End Function

可是有问题,我发现循环中的Set pBkMk = pMapBkMks.Bookmarks.Next 好像没有作用,形成一个死循环。有谁用过IMapBookmarks,来帮忙看看

喜欢0 评分0
cnwangyx@163.com 13430227558 QQ:120641819
默认头像
路人甲
路人甲
  • 注册日期2004-03-12
  • 发帖数45
  • QQ
  • 铜币399枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-06-01 11:37

This sample shows one method for creating a new Area of Interest
bookmark:
Public Sub AddSpatialBookMark()
Dim pMxDoc As IMxDocument
Dim pMap As IMap
Dim pActiveView As IActiveView
Dim pAreaOfInterest As IAOIBookmark
Dim pMapBookmarks As IMapBookmarks
Set pMxDoc = Application.Document
Set pMap = pMxDoc.FocusMap
Set pActiveView = pMap
'Create a new bookmark and set its location to the focus map's
'current extent
Set pAreaOfInterest = New AOIBookmark
Set pAreaOfInterest.Location = pActiveView.Extent
'Give the bookmark a name
pAreaOfInterest.Name = "My bookmark"
'Add the bookmark to the map's bookmark collection.This will add
'the bookmark to the Bookmarks menu accessible from the View menu
Set pMapBookmarks = pMap
pMapBookmarks.AddBookmark pAreaOfInterest
End Sub
This sample shows one way to find an existing spatial bookmark andzoom to its stored extent:
Public Sub ZoomToBookmark()
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
pBookmark.ZoomTo pMxDoc.FocusMap
pMxDoc.ActiveView.Refresh
Exit Sub
End If
Set pBookmark = pEnumBookmarks.Next
Loop
End Sub

举报 回复(0) 喜欢(0)     评分
默认头像
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2005-05-25 10:48
你可以在开发帮助里找

Bookmark Manager

这个例子

GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
默认头像

返回顶部