ArcObjects kullanarak ArcGIS Desktop'a GeoPackage Ekleme
Oct 27 2020
ArcObjects kodunu (tercihen c #) kullanarak ArcGIS Desktop’a nasıl GeoPackage katmanı ekleyebilirim?
ESRI belgelerinden:
WorkspaceFactoryProgID, söz konusu çalışma alanını açmak için kullanılan WorkspaceFactory nesnesinin ProgID'sini tanımlar.
Olası WorkspaceFactoryProgID'lerden bazılarının listesi aşağıdadır:
esriDataSourcesGDB.AccessWorkspaceFactory
esriDataSourcesFile.ArcInfoWorkspaceFactory
esriDataSourcesFile.CadWorkspaceFactory
esriDataSourcesGDB.FileGDBWorkspaceFactory
esriDataSourcesOleDB.OLEDBWorkspaceFactory
esriDataSourcesFile.PCCoverageWorkspaceFactory
esriDataSourcesRaster.RasterWorkspaceFactory
esriDataSourcesGDB.SdeWorkspaceFactory
esriDataSourcesFile.ShapefileWorkspaceFactory
esriDataSourcesOleDB.TextFileWorkspaceFactory
esriDataSourcesFile.TinWorkspaceFactory
esriDataSourcesFile.VpfWorkspaceFactory
"Bazı" kelimesinin kullanılması, daha fazla fabrikanın mevcut olabileceğini düşündürüyor. ArcMap'teki AddData düğmesini kullanarak kesinlikle GeoPackage katmanları ekleyebilirsiniz.
Yanıtlar
3 Hornbydd Oct 28 2020 at 14:34
Aşağıda, geoPackage'daki FeatureClass'ı ArcMap'teki bir haritaya yükleyecek bazı VBA kodu verilmiştir. Ona erişmeniz gerekiyor 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
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı