PIE SDK打開柵格數據


 

1. 功能簡介

    GIS將地理空間數據表示為矢量數據和柵格數據。矢量數據模型使用點、線和多邊形來表示具有清晰空間位置和邊界的空間要素,如控制點、河流和宗地等,每個要素被賦予一個ID,以便與其屬性相關聯。柵格數據模型使用一個格網和格網元胞(像元)代表空間要素,元胞值表示該元胞位置的空間要素屬性。柵格數據模型適用於表示連續的要素,如海拔和降水量。

             

   [矢量數據模型]                                                      [柵格數據模型]

    PIE支持多種矢量數據的打開,下面我們就介紹如何在PIE中打開Shape類型的矢量數據。

2. 功能實現說明

2.1  柵格數據介紹

    常見的柵格數據文件格式包括tiff、tif、img、dat等,它們采用文件的方式存儲相關信息,一個Tiff數據的文件結構如下所示(GF1數據為例):

 

[Tiff數據文件結構]

編號

后綴

文件說明

1

.tiff

基本文件,存儲柵格數據的像素、坐標系、坐標等信息;

2

.jpg

可選文件,柵格數據的示意圖;

3

.rpb

可選文件,坐標參數文件;

4

.xml

可選文件,數據相關信息文件;

5

.ovr/aux.xml

可選文件,柵格數據金字塔文件;

[Tiff數據文件結構說明]

2.2 實現思路及原理說明

第一步

通過文件路徑打開柵格數據集

第二步

通過柵格數據集創建柵格圖層

2.3 核心接口與方法

接口/類

方法

說明

DataSource.DatasetFactory

OpenRasterDataset

打開柵格數據集

Carto.LayerFactory

CreateDefaultRasterLayer

創建柵格圖層

2.4 示例代碼

 

項目路徑

百度雲盤地址下/PIE示例程序/03.數據加載/02.打開柵格數據

數據路徑

百度雲盤地址下/PIE示例數據/柵格數據/01.GF1/GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600/xxx.tif

視頻路徑

百百度雲盤地址下/PIE視頻教程/03.數據加載/02.打開柵格數據.avi

示例代碼

 1 方法(一)
 2   // 獲得要打開Shape數據的路徑
 3   OpenFileDialog openFileDialog = new OpenFileDialog();
 4   openFileDialog.Filter = "柵格數據(*.tiff)|*.tif;*.tiff";
 5   if (openFileDialog.ShowDialog() != DialogResult.OK) return;
 6   // 打開圖層
 7   string filePath = openFileDialog.FileName;
 8   ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(filePath);
 9   if (layer == null) return;
10   // 添加圖層到地圖並刷新
11   mapControMain.FocusMap.AddLayer(layer);
12  mapControMain.ActiveView.PartialRefresh(PIE.Carto.ViewDrawPhaseType.ViewAll);
13 
14 方法(二)
15    // 獲得要打開柵格數據的路徑
16    OpenFileDialog openFileDialog = new OpenFileDialog();
17    openFileDialog.Filter = "柵格數據(*.tiff)|*.tif;*.tiff";
18    if (openFileDialog.ShowDialog() != DialogResult.OK) return;
19    // 打開柵格數據集
20    string filePath= openFileDialog.FileName;
21    IRasterDataset rDataset = PIE.DataSource.DatasetFactory.OpenRasterDataset(filePath,OpenMode.ReadOnly);
22    if (rDataset == null) return;
23    // 創建柵格圖層
24    IRasterLayer rasterlayer = PIE.Carto.LayerFactory.CreateDefaultRasterLayer(rDataset);
25    if (rasterlayer == null) return;
26    // 添加圖層到地圖並刷新
27    mapControlMain.FocusMap.AddLayer(rasterlayer as ILayer);
28  mapControlMain.ActiveView.PartialRefresh(PIE.Carto.ViewDrawPhaseType.ViewAll);
View Code

2.5 示例截圖

 

 


免責聲明!

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



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