การเพิ่ม GeoPackage ไปยัง ArcGIS Desktop โดยใช้ ArcObjects
Oct 27 2020
ฉันจะเพิ่มเลเยอร์ GeoPackage ไปยัง ArcGIS Desktop โดยใช้รหัส ArcObjects ได้อย่างไร (ควรเป็น c #)
จากเอกสาร ESRI:
WorkspaceFactoryProgID ระบุ ProgID ของอ็อบเจ็กต์ WorkspaceFactory ที่ใช้เพื่อเปิดเวิร์กสเปซนั้น
นี่คือรายการของ 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
การใช้คำว่า "บาง" ทำให้คิดว่าน่าจะมีโรงงานเพิ่มขึ้น คุณสามารถเพิ่มเลเยอร์ GeoPackage ได้โดยใช้ปุ่ม AddData ใน ArcMap
คำตอบ
3 Hornbydd Oct 28 2020 at 14:34
ด้านล่างนี้คือโค้ด VBA ที่จะโหลด FeatureClass ใน geoPackage ลงในแผนที่ใน ArcMap 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