名詞: IWorkspaceFactory 工作空間工廠 ShapeFileWorksapceFactory 矢量文件工作空間工廠 IWorkspce 工作空間 IFeatrueWorkspace 要素工作空間 IFeatureClass 要素類 IFeatureLayer 要素圖層 Feature ...
名詞:
IWorkspaceFactory 工作空間工廠
ShapeFileWorksapceFactory 矢量文件工作空間工廠
IWorkspce 工作空間
IFeatrueWorkspace 要素工作空間
IFeatureClass 要素類
IFeatureLayer 要素圖層
FeatureLayerClass 要素圖層類
ILayer 圖層對象
IMap 地圖對象
載入指定的shp文件(代碼分析)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ESRI.ArcGIS.DataSourcesFile; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Carto; namespace SimpleArcEngineDemo { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void menuAddShp_Click(object sender, EventArgs e) { //通過工作空間工廠創建一個矢量文件工作空間工廠, 通過矢量文件工作空間載入數據並保存在一個新創建的工作空間中。 IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory(); IWorkspace pWorkspace1 = pWorkspaceFactory.OpenFromFile(@"D:\data", 0); //數據目錄 //將這個新創建的工作空間強轉成要素工作空間,通過要素工作空間打開一個要素類並保存在一個新創建的要素類中。 IFeatureWorkspace pFeatureWorkspce = pWorkspace1 as IFeatureWorkspace; IFeatureClass pFC = pFeatureWorkspce.OpenFeatureClass("華東地區.shp"); //通過要素圖層創建一個要素圖層類,將新創建的要素類放在剛創建的要素圖層類中並按照原本的名字命名。 IFeatureLayer pFLayer = new FeatureLayerClass(); pFLayer.FeatureClass = pFC; pFLayer.Name = pFC.AliasName; //將創建的要素圖層類強轉成圖層對象並保存一個新創建的圖層對象中。 ILayer pLayer = pFLayer as ILayer; //綁定地圖對象到控制項axMapControl IMap pMap = axMapControl1.Map; //地圖對象添加新創建的圖層對象 pMap.AddLayer(pLayer); //將控制項axMapControl設置為動態刷新 axMapControl1.ActiveView.Refresh(); } } }
簡述:
通過工作空間工廠創建一個矢量文件工作空間工廠,通過矢量文件工作空間載入數據並保存在一個新創建的工作空間中。
將這個新創建的工作空間強轉成要素工作空間,通過要素工作空間打開一個要素類並保存在一個新創建的要素類中。
通過要素圖層創建一個要素圖層類,將新創建的要素類放在剛創建的要素圖層類中並按照原本的名字命名。
將創建的要素圖層類強轉成圖層對象並保存一個新創建的圖層對象中。
綁定地圖對象到控制項axMapControl。
地圖對象添加新創建的圖層對象。
將控制項axMapControl設置為動態刷新。
謝謝觀看!本人初學GIS二次開發,如果有不對的地方,請多多包涵!