介紹ArcGIS中各種數據的打開方法——tin(柵格文件)


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二次開發,如果有不對的地方,請多多包涵!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM