
提示:扫一扫查出行【扫一扫了解最新限行尾号】复制提示 1. 功能简介
金字塔可用于改善性能,可以加快栅格数据的显示速度。随着放大操作的进行,各个更精细的分辨率等级将逐渐得到绘制;但性能将保持不变;目前PIE SDK支持栅格数据的金字塔创建,下面对栅格数据格的金字塔创建的功能进行介绍。
2. 功能实现说明
2.1. 实现思路及原理说明
第一步 | 获取要建立金字塔的栅格数据 |
第二步 | 利用BuildPyramid(…)进行建立金字塔 |
2.2. 核心接口与方法
接口/类 | 方法/属性 | 说明 |
IRasterDataset | GetPyramidLevel() | 获取金字塔级别 |
BuildPyramid(…) | 建立金字塔 |
DataSource.DatasetFactory | OpenRasterDataset (…) | 打开栅格数据集 |
2.3. 示例代码
项目路径 | 百度云盘地址下/PIE示例程序/04数据操作/14栅格数据创建金字塔 |
数据路径 | 百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif |
视频路径 | 百度云盘地址下/PIE视频教程/04数据操作/14栅格数据创建金字塔.avi |
示例代码 |
/// <summary> /// 建立金字塔 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void toolStripButton_BuildPyramid_Click(object sender, EventArgs e) { try { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "RasterFile|*.tiff"; if (openFileDialog.ShowDialog() != DialogResult.OK) return; string path = openFileDialog.FileName; IRasterDataset rasterDataSet = DatasetFactory.OpenRasterDataset(path, OpenMode.ReadOnly); int count = rasterDataSet.GetPyramidLevel(); MessageBox.Show("金字塔创建之前的级别为【" + count + "】"); bool bOk = rasterDataSet.BuildPyramid(Convert.ToSingle(0.5), DadaSampleType.CUBIC, null, null); count = rasterDataSet.GetPyramidLevel(); if (bOk) { MessageBox.Show("金字塔创建成功,金字塔创建之后的级别为【" + count + "】"); } else { MessageBox.Show("金字塔创建失败!"); } return; } catch (Exception ex) { MessageBox.Show(ex.ToString(), "创建金字塔失败异常"); } } |
2.4. 示例截图

