您的位置:首页 > 移动开发 > Objective-C

Add an Annotation FeatureClass from a Personal Geodatabase to ArcMap with ArcObjects

2009-05-15 12:34 609 查看

Procedure

Start ArcMap.

Create a new UIButtonControl.

Right-click the UIButtonControl and select View Source.

Copy below code into the UIButtonControl's click event.

Dim strPathName As String

strPathName = "D:"temp"yellowstone.mdb" ' Replace with the name of your Personal Geodatabase

Modify the value of strPathName to reflect the location of your Personal Geodatabase.

Copy the code below into the UIButtonControl's click event, immediately after the code you entered in Step 4.

Dim strData As String

strData = "AnnoRoad" ' Replace with the name of your annotation FeatureClass

Modify the value of strData to point to the annotation Feature Class in your Personal Geodatabase.

Copy the code below into the UIButtonControl's click event, immediately after the code you entered in Step 6.

' Set up the WorkspaceFactory

Dim pWorkspaceName As IWorkspaceName

Set pWorkspaceName = New WorkspaceName

pWorkspaceName.WorkspaceFactoryProgID = "esricore.AccessWorkspaceFactory"

pWorkspaceName.PathName = strPathName

Dim pDatasetName As IDatasetName

Set pDatasetName = New FeatureClassName

pDatasetName.Name = strData

Set pDatasetName.WorkspaceName = pWorkspaceName

' Use a lightweight Name object to open the table.

Dim pName As IName

Set pName = pDatasetName ' QI

Dim pTable As ITable

Set pTable = pName.Open

Dim pFeatClass As IDataset

Set pFeatClass = ptable

Dim pFeatLay As IFeatureLayer

'IFDOGraphicsLayerFactory::OpenGraphicsLayer IS THE KEY to accessing the data!

Dim pFDOGraphicsLayerFactory As IFDOGraphicsLayerFactory

Set pFDOGraphicsLayerFactory = New FDOGraphicsLayerFactory

'*****************************************

' Modify this line of code

Set pFeatLay = pFDOGraphicsLayerFactory.OpenGraphicsLayer(pfeatclass.Workspace, Nothing, "AnnoRoad")

'*****************************************

'Assign the name in the Table of Contents

pFeatLay.Name = pFeatClass.Name

' Add the annotation to ArcMap

Dim pMxDoc As IMxDocument

Set pMxDoc = ThisDocument

Dim pMap As IMap

Set pMap = pMxDoc.ActiveView

pMap.AddLayer pFeatLay

Dim pAV As IActiveView

Set pAV = pMap

pAV.Refresh

Modify the third argument passed to the OpenGraphicsLayer method to point to the input annotation Feature Class.

Test the code.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐