PIE SDK打開柵格數據

 

1. 功能簡介

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

             

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

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

2. 功能實現說明

2.1  柵格數據介紹

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

 

[Tiff數據文件結構]xml

編號blog

後綴教程

文件說明接口

1ci

.tiffstring

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

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 示例截圖

 

相關文章
相關標籤/搜索