4、加載柵格文件
柵格數據是GIS中重要的數據源之一,如衛星圖像、掃描的地圖、照片等。
柵格數據常見的格式有Bmp、Tiff、Jpg、Grid等。
添加柵格數據主要使用Rasterlayer 組件類,以及IMap、ILayer、IRasterLayer接口等。Rasterlayer組件類實現了ILayer、IRasterlayer、TTable、IDataset等接口,主要用於柵格數據的打開、顯示、操作狀態等設置。
介紹一種打開柵格文件的方法
核心代碼:
#region 添加TIN數據 private void 添加TIN數據toolStripLabel1_Click(object sender, EventArgs e) { //方法: AddTinFile(); } /// <summary> /// 加載柵格圖層 /// </summary> private void AddTinFile() { this.Cursor = Cursors.WaitCursor; IWorkspaceFactory pWorkspaceFactory = new TinWorkspaceFactoryClass(); IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(m_Path, 0); ITinWorkspace pTinWorkspace = pWorkspace as ITinWorkspace; //聲明一個pTin變量, 存儲所打開的"tin" ITin pTin = pTinWorkspace.OpenTin("tin"); //將TIN變為TIN圖層 ITinLayer pTinLayer = new TinLayerClass(); pTinLayer.Dataset = pTin; pTinLayer.Name = "TIN"; //也可以用三維空間AxSceneControl加載 //axSceneControl1.Scene.AddLayer(pTinLayer, true); this.axMapControl1.AddLayer(pTinLayer); this.Cursor = Cursors.Default; } #endregion
加載Tin文件到SceneControll對象和到MapControl對象的方法大同小異。
只需要將
this.axMapControl1.AddLayer(pTinLayer);
換成
axSceneControl1.Scene.AddLayer(pTinLayer, true);
補充說明:
需從工具箱中拖曳SceneControl到界面窗口,自動生成SceneControll對象。
Tin文件的加載需要用到兩個組件類:Scene和SceneGraph。
Scene是一個矢量、柵格和圖形數據顯示與處理的容器,該類實現了IScene接口,提供了控制 Scene的方法和屬性,如Addlayer方法用於向場景中增加一個圖層。
SceneGraph是一個記錄在Scene中出現的數據和事件的容器,該類實現了ISceneGraph接口,提供了控制和處理Scene中圖形的方法和屬性。
效果圖:
謝謝觀看!本人初學GIS二次開發,如果有不對的地方,請多多包涵!