QGIS二次开发(C++/Qt):栅格计算器

需求规格说明

编写一个具有加、减、乘、除、对数、指数计算功能的栅格图层计算工具,计算结果以tiff格式的栅格文件输出。

思路:1.自行设计界面,逐个实现计算功能;

           2.调用QGIS原生栅格计算器。

本文使用第二种方法,直接调用QGIS的栅格计算器。

代码实现

查看QGIS源码可以发现,栅格计算器的ui文件为qgsrastercalcdialogbase.ui,相关头文件为qgsrastercalcdialog.h。

1.在工程项目中包含头文件#include"qgsrastercalcdialog.h",在相应的槽函数中添加代码:

	void DataViewer::on_actioncalculate_triggered()
{
    QgsRasterCalcDialog* calculate = new QgsRasterCalcDialog();
	calculate->show();
}

运行后发现能够正确调用栅格计算器界面,但是无法执行计算。

2.创建QgsRasterCalculator对象,通过构造函数传递计算表达式、输出文件路径、输出格式、输出范围、输出坐标参考系统、栅格大小等参数。调用 processCalculation 函数执行栅格计算并输出计算结果。

修改槽函数中的代码:(以下代码是从源码里直接粘贴过来的,但我不记得具体复制的位置了。。。)

//栅格计算器
void DataViewer::on_actioncalculate_triggered()
{
	QgsRasterCalcDialog* d = new QgsRasterCalc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值