1.功能简介

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

2.功能实现说明

2.1 实现思路及原理说明

第一步

获取要读取的栅格数据

第二步

获取栅格数据的读取

第三步

构建新的栅格数据集

第四步

栅格数据写入

第五步

设置空间参考

第六步

设置仿射变换

2.2 核心接口与方法

接口/类

方法/属性

说明

SysDataSource::RasterDatasetPtr

GetBandCount()

获取波段数

Read()

栅格读取

Write()

栅格写入

GetGeoTransform()

获取仿射变换参数

SetGeoTransform()

设置仿射变换参数

GetSpatialReference()

空间参考

SysDataSource::DatasetFactory

CreateRasterDataset()

空间栅格数据集

2.3 示例代码

项目路径

百度云盘地址下/PIE示例程序/04数据操作/11内存栅格数据的创建

数据路径

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

视频路径

百度云盘地址下/PIE视频教程/04数据操作/11内存栅格数据的创建.avi

示例代码

void PIEMainWindow::On_ActionReadMEMRaster_Triggered(bool checked)

{

SysCarto::RasterLayerPtr rasterLayerPtr = m_pCurrentControl->GetActiveView()->GetCurrentLayer();

if (rasterLayerPtr == nullptr) return;

SysDataSource::RasterDatasetPtr datasetPtr = rasterLayerPtr->GetDataset();

int BandCount = datasetPtr->GetBandCount();

//2栅格数据范围等信息的读取

int xSize = datasetPtr->GetRasterXSize();//行

int ySize = datasetPtr->GetRasterYSize();//列

QVector<int> vectorBand;

int* bandMap = new int[BandCount];

for (int i = 0; i < BandCount; i++)

{

bandMap[i] = i + 1;

vectorBand.insert(i, i + 1);

}

SysDataSource::PixelBufferPtr buffer = datasetPtr->Read(0, 0, xSize, ySize, xSize, ySize, vectorBand);

SysDataSource::RasterDatasetPtr newDataSet = SysDataSource::DatasetFactory::Instance()->CreateRasterDataset("", xSize, ySize, BandCount, datasetPtr->GetRasterBand(0)->GetRasterDataType(), "MEM");

double* geo = new double[6];

datasetPtr->GetGeoTransform(geo);

newDataSet->SetSpatialReference(datasetPtr->GetSpatialReference());

newDataSet->SetGeoTransform(geo);

bool flag = newDataSet->Write(0, 0, xSize, ySize, buffer->GetData(), xSize, ySize, datasetPtr->GetRasterBand(0)->GetRasterDataType(), BandCount, bandMap);

if (flag)

{

SysCarto::LayerPtr newLayer = SysCarto::LayerFactory::Instance()->CreateDefaultRasterLayer(newDataSet);

if (newLayer != nullptr)

{

newLayer->SetName("内存图层");

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

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

}

}

}

2.4 示例截图

PIE-SDK For C++内存栅格数据的创建的更多相关文章

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

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

  2. PIE SDK栅格数据的创建

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

  3. 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 ...

  4. PIE SDK矢量数据的投影转换

    1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式 ,每一种数据都可以对投影进行转换,目前PIE SDK支持矢量和栅格数据的投影转换功能,下面对矢量数据的投影转换功能进行介绍. 2 ...

  5. PIE-SDK For C++栅格数据的创建

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

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

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

  7. PIE SDK内存矢量数据的创建

    1.功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联.栅 ...

  8. PIE SDK创建掩膜

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

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

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

随机推荐

  1. MySQL8.0 InnoDB并行执行

    概述 MySQL经过多年的发展已然成为最流行的数据库,广泛用于互联网行业,并逐步向各个传统行业渗透.之所以流行,一方面是其优秀的高并发事务处理的能力,另一方面也得益于MySQL丰富的生态.MySQL在 ...

  2. centos6.x下yum安装heartbeat

    [root@heartbeat ~]# uname -n #<===配置heartbeat时,节点的主机名必须和 uname -n 命令的结果要一致 heartbeat [root@heartb ...

  3. Nginx 核心配置

    nginx的核心配置在conf/nginx.conf中. 全局配置块 user root; #运行worker进程的账户,user   用户   [组],默认以nobody账户运行 worker_pr ...

  4. win10安装两个不同版本的mysql(mysql5.7和mysql-8.0.19)

    win10中安装mysql5.7后,安装mysql-8.0.19 在D:\mysql-8.0.19-winx64目录下创建一个my.ini文件 [mysqld] # 设置3307端口 port # 设 ...

  5. netsh 查看自己的wifi密码。

    查看自己曾经连接过得wifi netsh wlan show profiles 断开wifi netsh wlan disconnect 查看密码 netsh wlan show profile na ...

  6. 为什么选择Spring Boot?

    本文概述了各种Spring配置样式,并帮助你了解配置Spring应用程序的复杂性.抽丝剥茧 细说架构那些事——[优锐课] Spring是一个非常流行的基于Java的框架,用于构建Web和企业应用程序. ...

  7. Luarocks 安装艰难过程

    https://www.cnblogs.com/fanxiaojuan/p/11551268.html

  8. R语言常用的矩阵操作

    R语言是一门非常方便的数据分析语言,它内置了许多处理矩阵的方法.下面列出一些常用的矩阵操作方法示例. 矩阵的生成 > mat <- matrix(:, ncol = , nrow = , ...

  9. PHP0016:PHP http协议

    post提交请求头

  10. Python3 协程相关 - 学习笔记

    什么是协程 协程的优势 Python3中的协程 生成器 yield/send yield + send(利用生成器实现协程) 协程的四个状态 协程终止 @asyncio.coroutine和yield ...