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

Procedure

  1. Start ArcMap.
  2. Create a new UIButtonControl.
  3. Right-click the UIButtonControl and select View Source.
  4. 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


  5. Modify the value of strPathName to reflect the location of your Personal Geodatabase.
  6. 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

  7. Modify the value of strData to point to the annotation Feature Class in your Personal Geodatabase.
  8. 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

  9. Modify the third argument passed to the OpenGraphicsLayer method to point to the input annotation Feature Class.
  10. Test the code.
posted on 2009-05-15 12:34  炜升  阅读(496)  评论(0编辑  收藏  举报