Adicionando GeoPackage ao ArcGIS Desktop usando ArcObjects
Oct 27 2020
Como adiciono uma camada GeoPackage ao ArcGIS Desktop usando o código ArcObjects (de preferência c #)?
Da documentação da ESRI:
O WorkspaceFactoryProgID identifica o ProgID do objeto WorkspaceFactory que é usado para abrir esse espaço de trabalho específico.
Aqui está uma lista de alguns dos possíveis WorkspaceFactoryProgIDs:
esriDataSourcesGDB.AccessWorkspaceFactory
esriDataSourcesFile.ArcInfoWorkspaceFactory
esriDataSourcesFile.CadWorkspaceFactory
esriDataSourcesGDB.FileGDBWorkspaceFactory
esriDataSourcesOleDB.OLEDBWorkspaceFactory
esriDataSourcesFile.PCCoverageWorkspaceFactory
esriDataSourcesRaster.RasterWorkspaceFactory
esriDataSourcesGDB.SdeWorkspaceFactory
esriDataSourcesFile.ShapefileWorkspaceFactory
esriDataSourcesOleDB.TextFileWorkspaceFactory
esriDataSourcesFile.TinWorkspaceFactory
esriDataSourcesFile.VpfWorkspaceFactory
O uso da palavra "alguns" me faz pensar que pode haver mais fábricas disponíveis. Você certamente pode adicionar camadas do GeoPackage usando o botão AddData no ArcMap.
Respostas
3 Hornbydd Oct 28 2020 at 14:34
Abaixo está algum código VBA que carregaria uma FeatureClass em um geoPackage em um mapa no ArcMap. Você precisa acessá-lo por meio 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
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas