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
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Jste tu noví? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.