阅读:1346回复:1
图层加载
<P>请问,如何将数据库中的所有要素类加载到MapControl控件中!</P>
|
|
1楼#
发布于:2004-09-04 10:40
<P>
Sub AddGDBData()</P><P>Dim pWF As IWorkspaceFactory Dim pPropset As IPropertySet Set pWF = New AccessWorkspaceFactory Dim pWs As IWorkspace Dim DGBPath As String Dim pFeatureLayer As IFeatureLayer Dim pMxDoc As IMxDocument Set pMxDoc = ThisDocument Set pPropset = New PropertySet</P><P>DGBPath = InputBox("Enter Geodatabase File Name and Path", "Geodatabase Path", "C:\AltaLink\AltaLink.mdb") If DGBPath = "" Then Exit Sub End If</P><P>'Set and Open WorkspaceFactories pPropset.SetProperty "DATABASE", DGBPath Set pWs = pWF.Open(pPropset, 0)</P><P>Dim pWorkspace2 As IFeatureWorkspace Set pWorkspace2 = pWF.OpenFromFile(DGBPath, 0) 'Iterate through Datasets in Personal Geodatabase and Add Feature Classes Dim i As Long Dim pEnumDs As IEnumDataset Set pEnumDs = pWs.Datasets(esriDTFeatureDataset) Dim pFCC As IFeatureClassContainer Dim pDs As IDataset Dim pFc As IFeatureClass Set pDs = pEnumDs.Next</P><P>Dim FeatL As String Do Until pDs Is Nothing Set pFCC = pDs For i = 0 To pFCC.ClassCount - 1 Set pFc = pFCC.Class(i) FeatL = pFc.AliasName Set pFeatureLayer = New FeatureLayer Set pFeatureLayer.FeatureClass = pWorkspace2.OpenFeatureClass(FeatL)</P><P>pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName pMxDoc.FocusMap.AddLayer pFeatureLayer</P><P> Next Set pDs = pEnumDs.Next Loop End Sub </P> |
|
|