You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QGIS C++加载Google底图仅显示上半部分、纬度无效问题求助

问题原因
  • 谷歌瓦片服务采用TMS瓦片坐标系,Y轴计数规则与QGIS默认XYZ坐标系相反:标准XYZ瓦片Y轴从北极向南极递增,TMS规则下Y轴从南极向北极递增。未做Y轴适配时,南半球区域的瓦片Y值会被判定为无效,所以只能显示赤道以北的上半部分底图。
  • 代码存在变量名笔误:你定义的数据源实例名称是ds,但构造图层时调用了未定义的uri.encode(),参数传递异常也会干扰图层加载逻辑。
修复后的代码
QgsDataSourceUri ds;
ds.setParam("type", "xyz");
// 将URL中的{y}替换为{-y},自动适配TMS的Y轴翻转规则
ds.setParam("url", QString("https://mt1.google.com/vt/lyrs=m&x={x}&y={-y}&z={z}"));
ds.setParam("zmax", "18");
ds.setParam("zmin", "0");
// 修复变量名错误,传入正确的编码后的数据源
layer = new QgsRasterLayer(ds.encode(), "basemap", "wms");

修改后即可加载完整的谷歌底图,效果和QGIS图形界面手动添加的图层一致。

内容的提问来源于stack exchange,提问作者phamtien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:54:07