ArcObjects를 사용하여 ArcGIS Desktop에 GeoPackage 추가
Oct 27 2020
ArcObjects 코드 (바람직하게는 C #)를 사용하여 ArcGIS Desktop에 GeoPackage 레이어를 추가하려면 어떻게하나요?
ESRI 문서에서 :
WorkspaceFactoryProgID는 특정 작업 공간을 여는 데 사용되는 WorkspaceFactory 객체의 ProgID를 식별합니다.
다음은 가능한 WorkspaceFactoryProgID의 일부 목록입니다.
esriDataSourcesGDB.AccessWorkspaceFactory
esriDataSourcesFile.ArcInfoWorkspaceFactory
esriDataSourcesFile.CadWorkspaceFactory
esriDataSourcesGDB.FileGDBWorkspaceFactory
esriDataSourcesOleDB.OLEDBWorkspaceFactory
esriDataSourcesFile.PCCoverageWorkspaceFactory
esriDataSourcesRaster.RasterWorkspaceFactory
esriDataSourcesGDB.SdeWorkspaceFactory
esriDataSourcesFile.ShapefileWorkspaceFactory
esriDataSourcesOleDB.TextFileWorkspaceFactory
esriDataSourcesFile.TinWorkspaceFactory
esriDataSourcesFile.VpfWorkspaceFactory
"some"이라는 단어를 사용하면 더 많은 공장이있을 수 있다고 생각합니다. ArcMap의 데이터 추가 버튼을 사용하여 GeoPackage 레이어를 추가 할 수 있습니다.
답변
3 Hornbydd Oct 28 2020 at 14:34
다음은 geoPackage의 FeatureClass를 ArcMap의지도에로드하는 VBA 코드입니다. 을 통해 액세스해야합니다 SqlWorkspaceFactory.
Public Sub AddDataToMap()
' Path to geopackage
Dim sPath As String
Let sPath = "C:\Scratch\test.gpkg"
' Create workspace factory
Dim pWSFac As IWorkspaceFactory2
Set pWSFac = New esriDataSourcesGDB.SqlWorkspaceFactory
' Open workspace
Dim pWS As IWorkspace
Set pWS = pWSFac.OpenFromFile(sPath, 0)
' cast into Featureworkspace
Dim pFWS As IFeatureWorkspace
Set pFWS = pWS
' open FeatureClass
Dim pFC As IFeatureClass
Set pFC = pFWS.OpenFeatureClass("main.fcLines")
' Create layer
Dim pFl As IFeatureLayer
Set pFl = New FeatureLayer
Set pFl.FeatureClass = pFC
pFl.Name = "Lines dataset"
' Add to current map and refresh
Dim pmxd As IMxDocument
Set pmxd = ThisDocument
pmxd.FocusMap.AddLayer pFl
pmxd.ActiveView.Refresh
pmxd.UpdateContents
End Sub