跳到主要内容

共同地形表面与高程查询

标准setTerrain/getTerrain/queryTerrainElevation使用共同raster-dem图源,复用自研DEM解码和既有真实三维深度/光照/拾取渲染,不需要显示图层。先选择mercator;注册源不下载,setTerrain绑定后按视野加载。夸张默认1、范围0..20,null关闭并释放引用。

import {map} from 'sqsmap';
map.setProjection({type:'mercator'});
map.addSource('dem',{type:'raster-dem',tiles:['https://your-provider/{z}/{x}/{y}.png'],
 encoding:'terrarium',attribution:'数据提供方署名'});
await map.setTerrain({source:'dem',exaggeration:1.5});
map.setPitch(45);
await map.sqs.flush({render:true});
const config=await map.getTerrain();
const height=await map.queryTerrainElevation([116.4,39.9]);
map.on('terrain',event=>{console.log(event.terrain);});

共同查询返回number或null;值为米制DEM双线性采样乘当前显示夸张。未开启、未加载、无数据或没有可用瓦片时返回null,不隐式返回零高程。查询读已缓存最高级别数据;不发修改事件,不下载额外瓦片。绑定保留源实例,删除引用中的图源报冲突;关闭后可删除。getTerrain是规范化配置,实际加载/错误/资源修订读map.sqs.getSourceInfo。terrain事件提供历史配置快照,字段terrain为配置或null。署名纳入getAttributions,调用方负责呈现。

地图相机保持自己的逻辑参数,开启地形不自动修改pitch。网格按显示LOD采样(每瓦片最多33x33)并按纬度转换米制高度,法向来自真实三角形,渲染与实际地形索引共享同一几何。双线性原数据查询精度与显示网格不同。CPU几何含栅格/拾取索引按保守估算最多32MiB,显示z绝对值最多1e9墨卡托米;PNG/高程缓存沿用共同瓦片预算。style对象可含terrain根属性;完整样式替换更新/关闭地形,并取消旧瓦片请求。

当前支持墨卡托、已有GeoJSON circle/line/fill三维路径;共同raster瓦片、hillshade/color-relief已按图层顺序贴合地形;配准image/video/canvas有效凸四角也已贴地;独立URL影像样式、fill-extrusion已按terrain-buildings接通,symbol/heatmap/background仍有组合限制。球面需先关闭地形。邻瓦片样本拼边、动态LOD、覆盖物贴地/地形相机焦点/手势锚点与覆盖物查询、原生/移动设备验收继续单列任务,不宣称完整MapLibre terrain兼容。

桌面已有map.sources.add本地DEM路径保持有效:getTerrain可返回TerrainState,queryTerrainElevation返回包含原始高度、基准和无数据原因的TerrainElevation对象,不乘显示夸张。要保持三端同脚本,请用共同map.addSource,标准返回为number/null;本地文件扩展仍按桌面能力查询使用。独立C ABI复用source JSON接口的setTerrain/getTerrain/queryTerrainElevation,无新增ABI符号。

参数参考MapLibre setTerrain和高程查询,代码和网格实现由SqsMap自行编写。

共同地形开启时,map.project 将经纬度投到已加载显示网格的真实三角面,再投影到逻辑像素;map.unproject 用同一相机射线与最近的实际表面相交。两者考虑当前夸张、倾角、方位、留白与DPR;没有已加载表面、无数据区域或天空命中时明确报错,不使用零高程替代。关闭地形后恢复原平面坐标。两者读取显示LOD几何,因此与原始DEM双线性高程查询的采样精度可能不同。覆盖物贴地、相机焦点抬升和手势锚点仍另列实现。

完整地形坐标HTML 列出全部按钮、往返查询和来源呈现。

有界裙边已接通共同地形,显示墙不参与真实表面查询。

父瓦片补位在子地形等待期间保持已缓存地表,加载状态仍按真实子数据报告。

有效瓦片元数据说明当前显式覆盖、实际尺寸/DEM编码,以及刷新等待和失败的数据保留;本文早期证明不重标版本。

网页版工作台也可在本地单波段DEM的显示设置中选择“三维地表”,由最上层可见DEM提供地面起伏;缺测保持无高程,支持工作区与引擎任务线程恢复。见本地DEM三维地表。