Public Sub GetFeatureClassAndWorkspace() Dim pOutSDEPropset As IPropertySet Set pOutSDEPropset = New PropertySet With pOutSDEPropset .SetProperty "Server", "shakedown" .SetProperty "Instance", "5151" .SetProperty "user", "sde" .SetProperty "password", "sde" .SetProperty "version", "SDE.DEFAULT" End With ' +++ Create a new feature datset name object for the output SDE feature dataset, call ' +++ it "USA" Dim pSDEworkspacefactory As IWorkspaceFactory Set pSDEworkspacefactory = New SdeWorkspaceFactory Dim pWorkspace As IWorkspace Set pWorkspace = pSDEworkspacefactory.Open(pOutSDEPropset, 0) Dim pSFworkspacefactory As IWorkspaceFactory Set pSFworkspacefactory = New ShapefileWorkspaceFactory Dim pShapeWorkspace As IWorkspace Set pShapeWorkspace = pSFworkspacefactory.OpenFromFile("C:\test_data\shapefiles", 0) Dim pFeatWork As IFeatureWorkspace Set pFeatWork = pShapeWorkspace Dim pFeatureClass As IFeatureClass Dim pFeatWs As IFeatureWorkspace Set pFeatWs = pWorkspace Set pFeatureClass = pFeatWs.OpenFeatureClass("States") ConvertFeatureClass pFeatureClass, pFeatWork End Sub Public Sub ConvertFeatureClass(pFeatureClass As IFeatureClass, _ pOutWorkspace As IWorkspace) 'Purpose: Converts a featureclass to a new feature class in a given workspace. 'Get input FeatureClassName and workspace Dim pInFCName As IFeatureClassName Dim pDataset As IDataset Set pDataset = pFeatureClass Set pInFCName = pDataset.FullName Dim pInWorkspace As IWorkspace Set pInWorkspace = pDataset.Workspace 'Set output workspacename Set pDataset = pOutWorkspace Dim pOutWorkspaceName As IWorkspaceName Set pOutWorkspaceName = pDataset.FullName 'Set output FeatureClassName Dim pOutFCName As IFeatureClassName Set pOutFCName = New FeatureClassName Dim pDatasetName As IDatasetName Set pDatasetName = pOutFCName pDatasetName.Name = "States_SHP.shp" Set pDatasetName.WorkspaceName = pOutWorkspaceName 'Get fields for input feature class and run them through field checker Dim pFieldChecker As IFieldChecker Dim pFields As IFields Set pFields = pFeatureClass.Fields Dim pOutFields As IFields Set pFieldChecker = New FieldChecker pFieldChecker.InputWorkspace = pInWorkspace Set pFieldChecker.ValidateWorkspace = pOutWorkspace pFieldChecker.Validate pFields, Nothing, pOutFields 'Convert the data Dim pFeatureDataConverter As IFeatureDataConverter Set pFeatureDataConverter = New FeatureDataConverter pFeatureDataConverter.ConvertFeatureClass pInFCName, Nothing, _ Nothing, pOutFCName, Nothing, pOutFields, "", 100, 0 End Sub
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.