PIE SDK栅格数据的投影转换

 

1. 功能简介

    为了适应不同数据显示分析的需要,数据的投影可以进行相应的转换,目前PIE SDK支持多种数据格式的投影转换,下面对栅格数据格式的投影转换功能进行介绍。

2. 功能实现说明

2.1. 实现思路及原理说明

第一步

获取要转换投影的数据

第二步

获取转换的投影空间参考

第三步

利用Transform()进行投影转换

2.2. 核心接口与方法

接口/类

方法/属性

说明

DatasetFactory

OpenRasterDataset(string strPath, OpenMode mode)

打开栅格数据集

PIE.DataSource.DataSourceUtil

Transform (…)

投影转换

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/04数据操作/13栅格数据的投影转换

数据路径

百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif

视频路径

百度云盘地址下/PIE视频教程/04数据操作/13栅格数据的投影转换.avi

示例代码

 1         /// <summary>
 2         /// 栅格数据的投影转换
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void toolStripButton_TransformRasterDataPrj_Click(object sender, EventArgs e)
 7         {
 8             try
 9             {
10                 //要投影转换的源数据以及转换后的保存位置
11                 OpenFileDialog openFileDialog = new OpenFileDialog();
12                 openFileDialog.Title = "需转换的栅格数据:";
13                 openFileDialog.Filter = "RasterFile|*.tiff;*.tif";
14                 if (openFileDialog.ShowDialog() != DialogResult.OK) return;
15                 SaveFileDialog saveFileDialog = new SaveFileDialog();
16                 saveFileDialog.Title = "保存为:";
17                 saveFileDialog.Filter = "RasterFile|*.tiff";
18                 if (saveFileDialog.ShowDialog() != DialogResult.OK) return;
19                 string pathSource = openFileDialog.FileName;
20                 string pathDes = saveFileDialog.FileName;//@"D:\data\test\TransformSave.tiff";
21 
22                 OpenFileDialog openFileDialog2 = new OpenFileDialog();
23                 openFileDialog.Title = "参考栅格数据:";
24                 openFileDialog2.Filter = "RasterFile|*.tiff;*.img;";
25                 openFileDialog2.ShowDialog();
26                 string path1 = openFileDialog2.FileName;
27                 IRasterDataset rasterDataSet1 = DatasetFactory.OpenRasterDataset(path1, OpenMode.ReadOnly);
28                 ISpatialReference spatialReference = rasterDataSet1.SpatialReference;
29                 bool bOk = PIE.DataSource.DataSourceUtil.Transform(pathSource, pathDes, spatialReference, 0, null, null, 0.00001, 0.00001);
30                 if (bOk)
31                 {
32                     MessageBox.Show("投影转换成功");
33                 }               
34                 return;
35             }
36             catch (Exception ex)
37             {
38                 MessageBox.Show(ex.ToString(), "栅格投影转换异常");
39             }
40  }
View Code

2.4. 示例截图

posted @ 2018-12-24 16:10  PIESAT  阅读(1040)  评论(0编辑  收藏  举报