找回密码
 立即注册
首页 业界区 业界 QGIS开发笔记(四):QgsRasterLayer加载Cesium二维地图 ...

QGIS开发笔记(四):QgsRasterLayer加载Cesium二维地图的瓦片地图数据到QGIS

姘轻拎 昨天 11:37
前言

  地图引擎加载瓦片地图是基本操作,本篇对qgis添加图片瓦片地图。
 Demo

  
1.gif

  
2.gif

 专业名词

波段

  波段(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)联动显示。
常用属性和操作

创建栅格图层
  1. // 栅格文件路径和图层名称
  2. QString rasterPath = "/path/to/your/raster.tif";
  3. QString layerName = "My Raster Layer";
  4. // 创建栅格图层
  5. QgsRasterLayer* rasterLayer = new QgsRasterLayer(rasterPath, layerName);
  6. // 检查图层是否有效
  7. if (!rasterLayer->isValid())
  8. {
  9.   qDebug() << "栅格图层加载失败: " << rasterLayer->error().message();
  10.   delete rasterLayer;
  11.   return 1;
  12. }
复制代码
 工程模板v1.1.0

  
3.png

 入坑

入坑一:纵横比显示错误

问题

  纵横比显示错误,导致变形
  
4.png

  
5.png

原因

  Xml的坐标系范围不对
解决

  修正xml配置参数
  
6.png

入坑二:修改坐标系种类后空白

问题

  修改坐标系后空表
  
7.png

  
8.png

  
9.png

尝试

  确保投影定义使用正确的EPSG代码格式,确认没问题。
  打开桌面版QGIS看他支持不:
  
10.png

  
11.png

  是支持的。
解决

  是数据库.db的问题,部署环境的时候,需要带上:
  
12.png

  开发环境的把proj.db带上去,再测试可以了:
  
13.png

  
14.png


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册