1.功能简介

金字塔可用于改善性能,可以加快栅格数据的显示速度。随着放大操作的进行,各个更精细的分辨率等级将逐渐得到绘制;但性能将保持不变;目前PIE SDK支持栅格数据的金字塔创建,下面对栅格数据格的金字塔创建的功能进行介绍。

2.功能实现说明

2.1 实现思路及原理说明

第一步

获取要建立金字塔的栅格数据

第二步

利用BuildPyramid算法进行建立金字塔

2.2 核心接口与方法

接口/类

方法/属性

说明

SysDataSource::RasterDatasetPtr

GetPyramidLevel()

获取金字塔级别

SysDataSource::DatasetFactory

OpenRasterDataset (…)

打开栅格数据集

SysAlgo::AlgoFactory

CreateAlgo

创建算法

ExecuteAlgo

执行算法

2.3 示例代码

项目路径

百度云盘地址下/PIE示例程序/04数据操作/14栅格数据创建金字塔

数据路径

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

视频路径

百度云盘地址下/PIE视频教程/04数据操作/14栅格数据创建金字塔.avi

示例代码

void PIEMainWindow::On_ActionBuildPyramid_Triggered(bool checked)

{

QString filter = "Raster Files (*.tif *.tiff *.img *.bmp *.jpg *.ldf *.dat *.1bd *.1b)";

QString tiffPath = QFileDialog::getOpenFileName(nullptr, "添加数据", "", filter);

if (tiffPath.isEmpty()) return;

SysDataSource::RasterDatasetPtr rasterDataSet = SysDataSource::DatasetFactory::Instance()->OpenRasterDataset(tiffPath, SysDataSource::GA_ReadOnly);

if (rasterDataSet == nullptr) return;

int count = rasterDataSet->GetPyramidLevel();

QMessageBox::information(this, "提示", QString("当前金字塔级别:%1").arg(count), QMessageBox::Ok);

//调用创建金字塔算法

SysAlgo::ISysAlgo* ptrAlgo= SysAlgo::AlgoFactory::Instance()->CreateAlgo("ImagePyramidBuildAlgo");

QStringList fileList;

fileList.append(tiffPath);

if (ptrAlgo==nullptr)

{

return;

}

boost::any anyData = fileList;

ptrAlgo->SetParams(anyData);

ptrAlgo->SetName("创建金字塔");

bool flag=SysAlgo::AlgoFactory::Instance()->ExecuteAlgo(ptrAlgo);

rasterDataSet = nullptr;

rasterDataSet = SysDataSource::DatasetFactory::Instance()->OpenRasterDataset(tiffPath, SysDataSource::GA_ReadOnly);

int level= rasterDataSet->GetPyramidLevel();

QMessageBox::information(this, "提示", QString("当前金字塔级别:%1").arg(level), QMessageBox::Ok);

SysCarto::LayerPtr layerPtr = SysCarto::LayerFactory::Instance()->CreateDefaultLayer(tiffPath);

if (layerPtr !=nullptr)

{

m_pCurrentControl->GetMap()->AddLayer(layerPtr);

m_pCurrentControl->GetActiveView()->Refresh();

}

}

PIE-SDK For C++栅格数据的金字塔创建的更多相关文章

  1. PIE SDK栅格数据的金字塔创建

    1. 功能简介 金字塔可用于改善性能,可以加快栅格数据的显示速度.随着放大操作的进行,各个更精细的分辨率等级将逐渐得到绘制;但性能将保持不变:目前PIE SDK支持栅格数据的金字塔创建,下面对栅格数据 ...

  2. PIE SDK打开自定义栅格数据

    1. 数据介绍 信息提取和解译的过程中,经常会生成一部分中间临时栅格数据,这些数据在执行完对应操作后就失去了存在的价值,针对这种情况,PIE增加了内存栅格数据集,来协助用户完成对自定义栅格数据的读取和 ...

  3. PIE SDK栅格数据的创建

    1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式.每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对栅格数据格式的数据创建功能进行介绍. 2. 功能 ...

  4. PIE SDK内存栅格数据的创建

    1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式.每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对内存栅格数据格式的数据创建功能进行介绍. 2.  ...

  5. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  6. PIE SDK创建金字塔算法

    1.算法功能简介 为栅格影像建立了金字塔,这些影像便能快速进行显示.除了在屏幕上显示外,金字塔还包含了很多其他信息.如果没有金字塔,那么在显示时就要访问整理栅格数据集,然后进行大量计算来选择哪些栅格像 ...

  7. PIE SDK创建掩膜

      1.算法功能简介 图像掩膜(Mask)用选定的图像.图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程.掩膜是一种图像滤镜的模板,实用掩膜经常处理的是遥感图像.当提取道 ...

  8. PIE SDK栅格数据的投影转换

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

  9. PIE SDK矢量数据空间索引的创建

    1. 功能简介 空间索引的使用便于数据的查询:所以在创建矢量数据的时候创建空间索引,下面对矢量数据如何创建空间索引进行功能介绍. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 创建矢量要素 ...

随机推荐

  1. Maven 多模块开发

    多模块开发在大项目中用得比较多,把一个项目拆分为多个模块,一个小组开发一个模块. 比如微服务,一个服务一个模块:比如ssm,持久层(dao)一个模块,业务层一个模块(service).视图层(mvc. ...

  2. 8.python内置模块之random模块简介

    Python中的random模块用于生成随机数. 常用的7个函数: 1.random.random():返回一个[0,1)之间的随机浮点值(双精度) 2.random.uniform(a,b):返回[ ...

  3. Java基础之五、Java编程思想(1-7)

    一.对象导论 1:多态的可互换对象 面向对象程序设计语言使用了后期绑定的概念. 当向对象发送消息时,被调用的代码直到运行时才能确定.也叫动态绑定. 2:单根继承结构 所有的类最终都继承自单一的基类,这 ...

  4. Anaconda切换工作目录盘符

    先回到C盘符的根目录再切换到其他盘符

  5. PostgreSQL内核学习笔记四(SQL引擎)

    PostgreSQL实现了SQL Standard2011的大部分内容,SQL处理是数据库中非常复杂的一部分内容. 本文简要介绍了SQL处理的相关内容. 简要介绍 SQL文的处理分为以下几个部分: P ...

  6. XmlDocument vs XElement

    var xmlstr = @"<xml> <AppId>some_appid</AppId> <CreateTime>1413192605&l ...

  7. idea中创建maven的Javaweb工程并进行配置

    学完maven后,可以创建maven的javaweb工程,在创建完成后还需要一些配置,下面来说下具体步骤,在这里我创建的是一个模块,创建web项目的方式和创建模块一样 1.创建一个模块,点new-Mo ...

  8. matplotlib制作图表数据

    import matplotlib.pyplot as plt import matplotlib fig=plt.figure() labels=['陆地','海洋'] data=[29,71] p ...

  9. Jacoco收集单元测试、集成测试和系统功能测试覆盖率

    Jacoco收集单元测试.集成测试和系统功能测试覆盖率 2020-02-27  目录 1 安装版本2 被测系统代码示例3 收集单元测试覆盖率4 收集集成和功能测试覆盖率 代码覆盖率可在单元测试.系统测 ...

  10. Vue中echarts的使用

    1.安装 npm install echarts --save 2. 导入并挂载 <template>   <!-- 1. 为ECharts准备一个具备大小(宽高)的Dom --&g ...