按点查询随取随得,沿线取样得到剖面
在地形上做高程查询和剖面分析,是两类常被放在一起说、其实差别不小的需求。前者是取一个点的值,鼠标点到哪就返回哪;后者是沿一条线取一串值,画出一条起伏曲线。实现思路也分两条:查询偏向即时交互,剖面偏向批量取样。先分清你要的是哪一种,再谈怎么实现,会清楚很多。

按点查询是交互性的。用户在场景里点一下,系统返回该点的高程。它要求响应快,通常是从当前已经加载的层级里直接取数,因此精度受限于当前视距和可用层级。点一下很快,但值未必是最精细的那一层。
沿线剖面是批量的。给定一条路线,沿路按固定间距取一串点,每个点取一次高程,最后连成曲线。它不要求即时返回,但要求整条线上的取数口径一致,否则曲线会出现不属于地形的锯齿。
两类需求的共同点,是都依赖同一份地形成果。差别在于取数的时机、数量和精度要求。理解这一点,就能理解为什么同一条数据,查询和剖面给出的结果有时会不一致。
还有一种常被忽略的差异,是两者对"一致性"的敏感程度不同。交互查询每次只取一个点,用户很难察觉几次查询之间层级是否一致;而剖面是一整条线的取数,任何一处层级不同都会在曲线上显现出来。所以剖面看起来比查询更敏感,其实只是它把不一致暴露得更充分。理解这一点,就不会因为剖面有毛刺而怀疑数据坏了。
一种做法是在前端查询。前端把地形图层挂载好之后,直接向地形提供器请求某个位置的高程。这种方式响应快,适合交互场景,代价是精度取决于用户当前的视距,拉得远时取到的是粗层级。
另一种做法是在后端计算。把高程数据放在服务端,查询请求发到后端,由后端在原始数据或高精度成果上插值。这种方式精度更可控,也不受前端视距影响,适合需要稳定精度的场合,代价是要维护一套服务。
关于前端是如何做地形取样的,可以对照 Cesium 的地形提供器说明 看它的取样接口,再决定走哪条路。两边各有所长,选哪条要看查询的用途。
还有一点和用途有关:查询结果是否需要留存。临时看一眼的查询,取完就丢,不必留痕;但如果它是给现场人员用的工具,查询记录本身可能就有价值,方便日后回溯某个位置当时的高程。要不要留痕,直接影响实现方式的复杂度,提前想清楚能少走弯路。
剖面的核心是取样。先确定路线,再按固定间距在线上取点。间距决定曲线的精细程度:间距越小,曲线越贴近地形,数据量也越大;间距太大,则会漏掉小尺度的起伏,看起来像被简化过。
取到点之后要做插值。原始高程是离散的格网值,路线落点一般不在格网节点上,需要从邻近的格网点插值出来。插值方法会影响曲线的平滑程度,陡坎位置尤其明显,值得在选择时留意。
取样口径要全程一致。如果一段用粗层级、一段用细层级,曲线会在衔接处出现不自然的跳跃,看起来像地形有台阶,其实只是取数层级不同。批量取样时,最好统一指定用同一层级或同一份数据。
取样间距的选取,还要和最终用途挂钩。若只是给人看一条大致起伏,粗一点的间距反而更清爽;若要做土方估算、通视判断这类计算,就得细一些,确保不遗漏关键的转折点。把用途想清楚,间距就有了依据,而不是凭手感随手取一个数字。
查询的精度,头一层看数据分辨率。源数据只在某个间距上采样过,插值再细也长不出真实细节。如果连源数据都看不到某个小起伏,查询自然也不会返回它。这一点和前面讨论层级时是同一个道理。
再往下一层,看可用层级。交互查询往往只能取到当前加载到的层级,视距远时精度就下降。剖面取样则可以通过强制指定层级来保证精度,代价是取数更多、更慢。用途不同,取舍也不同。
还有一个影响因素是插值方式。不同插值方法在平坦区域的差异可以忽略,在陡坎、沟壑附近则会有明显区别。对精度敏感的场景,不妨换一种插值方式对比一下,看曲线差异有多大,再决定用哪一种。
分辨率、层级与插值方式之外,还有一个隐性因素:数据的现势性。地形会随时间变化,尤其是在施工、采矿、堆填活跃的区域。旧数据上查出来的高程,放到今天很可能已经不准。用于关键判断时,先确认数据是哪一年观测的。
验证最直接的办法,是用几个高程已知的点去核对查询结果。单点都对得上,说明基准和单位没问题;若整体差一个常数,回到高程基准去查;若差异成比例,回到单位去查。这一步能挡掉大部分系统性错误。
剖面则要整条线看。把曲线和地形形态对照,看峰谷位置是否吻合、有没有莫名的小锯齿。锯齿往往来自插值或层级不一致,平滑掉这些小波动,曲线会更接近真实地形。
验证之后建议把取样层级、间距和插值方式记录下来。剖面结果的可比性依赖这些参数,换了参数曲线就会变。留下记录,后续对比才有依据。想先把链路跑通,可以从 下载 GISBox 基础版 开始,用一小块数据试一次查询与剖面。
还有一点值得提醒:查询与剖面最好共用同一份成果、同一套基准。若查询用的是在线地形、剖面用的是本地切片,两者的基准或分辨率一旦不同,结果自然对不上。遇到两边结果不一致时,先确认它们是不是同一个来源,往往比逐项排查更快。
按下面这个顺序走,基本能实现得比较顺:
1)先明确要的是按点查询还是沿线剖面;
2)查询选前端还是后端,取决于对精度的要求;
3)剖面先定路线与取样间距,再统一取数层级;
4)确认数据分辨率与可用层级,估计能达到的精度;
5)用已知点和整条曲线分别验证,并记录参数。
这套顺序的价值在于先分清需求、再选路径,而不是一上来就动手写逻辑。官方还提供了 视频教程,跟着演示做一遍,比自己摸索更快理解各环节的关系。复测通过之后,建议把查询与剖面的结果各留一份样例。同一条数据、同一套参数,不同时间做出来的曲线应当重合;留一份样例,日后调整或换人时就有了比对的基准。

取决于数据分辨率与可用层级,没有固定数字。源数据越细、取到的层级越深,查询越接近真实。反过来,数据粗或只取到粗层级时,查询值会比较笼统。判断时以用途能接受的程度为准。
先看取样间距和插值方式。间距过小会把插值噪声放大,间距过大又会漏掉细节,需要折中。再检查取数是否全程用了同一层级,层级不一致也会造成跳动。
多半是视距变了,取到的层级不同。交互查询依赖当前加载的层级,拉近拉远都会影响结果。要稳定复现,可以通过指定层级来取样,而不是依赖实时视距。
地形切片(GeoTIFF 转 terrain)与地形分发服务属于基础版免费功能,用它发布服务后在前端做查询与剖面没有问题。需要说明的是,定价页把“DEM 导入和下载”单列为企业版功能,两者是不同入口,具体以官网定价页当日展示为准。
如果结果与预期偏差较大,多数要回到分辨率与取样方式上核对。可以先从 查看 GISBox 版本与免费范围 确认自己用的是哪一档能力,再决定下一步。

【内容与技术说明】
本文由GISBox产品团队整理发布,内容由AI工具辅助生成并经团队人工核验。
因产品版本持续迭代,具体功能、参数与免费范围以GISBox官方文档为准。
如有技术疑问或内容勘误,欢迎通过support@gisbox.com反馈。
最后核校:2026-10-16。