QGIS开发笔记(四):QgsRasterLayer加载Cesium二维地图的瓦片地图数据到QGIS
前言地图引擎加载瓦片地图是基本操作,本篇对qgis添加图片瓦片地图。
Demo
专业名词
波段
波段(Band) 是指栅格数据中具有特定波长范围的信息层,类似于数字图像中的 “通道”。它是栅格数据(尤其是遥感影像)的核心组成部分,不同波段对应地物在不同电磁波谱范围内的反射或辐射特性。
不同波段的电磁波与地物相互作用的方式不同,因此能反映地物的不同特征:
[*]单波段灰度:选择单个波段,以黑白灰度显示(如单独查看近红外波段);
[*]多波段色彩:将3个不同波段分别映射到红(R)、绿(G)、蓝(B)通道,形成彩色图像(如真彩色、假彩色合成);
[*]伪彩色:对单波段数据使用色带渐变显示(如 DEM 的高程渲染)
图层
图层是管理和展示地理数据的核心单元,所有空间数据(如矢量数据、栅格数据、瓦片地图等)都以图层形式加载和处理。QGIS 支持多种类型的图层:
[*]矢量图层(Vector Layers)
[*]栅格图层(Raster Layers)
[*]瓦片图层(Tile Layers)
[*]标注图层(Label Layers)
[*]网格图层(Grid Layers)
[*]三维图层(3D Layers)
[*]其他图层
栅格数据
一种以规则网格(像素或像元)形式存储的地理空间数据,每个网格单元(像素)包含一个或多个数值,用于表示连续的地理现象(如地形、温度、植被覆盖等)。QGIS 支持多种栅格格式,常见的包括:
[*]TIFF/GeoTIFF(.tif/.tiff):最常用的带地理信息的栅格格式,支持多波段、压缩和空间参考。
[*]JPEG/JPEG2000(.jpg/.jp2):常用于卫星影像或航空照片,压缩率高。
[*]PNG(.png):支持透明通道,适合作为底图或符号。
[*]GRID(ArcGIS Grid):ESRI 的栅格格式,由多个文件组成。
[*]NetCDF(.nc):用于存储气象、海洋等多维栅格数据。
[*]HDF(.hdf):常用于遥感数据(如 MODIS、Landsat)。
QgsRasterLayer
概述
QgsRasterLayer是处理栅格数据的核心类,负责加载、显示渲染和操作栅格图层(如卫星影像、DEM 数据、遥感图像等)。
QgsRasterLayer对象通常由QgsProject管理生命周期,添加到项目后不需要手动删除。
QGIS的大部分API不是线程安全的,应避免在非主线程中操作栅格图层。
QgsRasterLayer支持多种栅格格式,具体取决于编译 QGIS 时启用的 GDAL 驱动。
核心功能与特性
[*]栅格数据加载:支持多种栅格格式(GeoTIFF、JPEG、PNG、DEM 等),底层通过GDAL库实现格式解析。
[*]属性信息获取:可获取图层范围、分辨率、波段数、坐标参考系(CRS)等元数据。
[*]像素数据访问:提供接口读取指定坐标或区域的像素值,支持单像素查询和区域数据提取。
[*]渲染控制: 支持多种渲染方式(单波段灰度、多波段 RGB、伪彩色等),可自定义颜色映射。
[*]项目集成:可添加到QgsProject中进行管理,与地图画布(QgsMapCanvas)联动显示。
常用属性和操作
创建栅格图层
// 栅格文件路径和图层名称
QString rasterPath = "/path/to/your/raster.tif";
QString layerName = "My Raster Layer";
// 创建栅格图层
QgsRasterLayer* rasterLayer = new QgsRasterLayer(rasterPath, layerName);
// 检查图层是否有效
if (!rasterLayer->isValid())
{
qDebug() << "栅格图层加载失败: " << rasterLayer->error().message();
delete rasterLayer;
return 1;
} 工程模板v1.1.0
入坑
入坑一:纵横比显示错误
问题
纵横比显示错误,导致变形
原因
Xml的坐标系范围不对
解决
修正xml配置参数
入坑二:修改坐标系种类后空白
问题
修改坐标系后空表
尝试
确保投影定义使用正确的EPSG代码格式,确认没问题。
打开桌面版QGIS看他支持不:
是支持的。
解决
是数据库.db的问题,部署环境的时候,需要带上:
开发环境的把proj.db带上去,再测试可以了:
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]