惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Microsoft Azure Blog
Microsoft Azure Blog
Cloudbric
Cloudbric
I
InfoQ
V
V2EX
博客园_首页
The Register - Security
The Register - Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Secure Thoughts
Vercel News
Vercel News
Forbes - Security
Forbes - Security
云风的 BLOG
云风的 BLOG
PCI Perspectives
PCI Perspectives
L
LINUX DO - 最新话题
D
DataBreaches.Net
H
Hacker News: Front Page
Application and Cybersecurity Blog
Application and Cybersecurity Blog
B
Blog RSS Feed
A
About on SuperTechFans
N
News and Events Feed by Topic
Apple Machine Learning Research
Apple Machine Learning Research
Help Net Security
Help Net Security
Attack and Defense Labs
Attack and Defense Labs
N
Netflix TechBlog - Medium
Spread Privacy
Spread Privacy
F
Full Disclosure
Recorded Future
Recorded Future
AWS News Blog
AWS News Blog
博客园 - 【当耐特】
The Cloudflare Blog
T
Threatpost
T
Tor Project blog
Google DeepMind News
Google DeepMind News
C
CXSECURITY Database RSS Feed - CXSecurity.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
M
MIT News - Artificial intelligence
A
Arctic Wolf
C
Check Point Blog
Stack Overflow Blog
Stack Overflow Blog
T
Threat Research - Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
Hacker News - Newest:
Hacker News - Newest: "LLM"
WordPress大学
WordPress大学
Cyberwarzone
Cyberwarzone
小众软件
小众软件
C
Cyber Attacks, Cyber Crime and Cyber Security
P
Proofpoint News Feed
Security Latest
Security Latest
The Last Watchdog
The Last Watchdog

博客园 - 飞扬青云

GB28181视频监控推流服务/点播预览推流/录像回放推流/指令预览推流/指令回放推流/自动预览推流 Qt电子地图叠加海图/全世界海图叠加到天地图图层/1-18级海图实时查看 超级屌的动态测距交互功能/耗时几万个脑细胞/自研原创地图控件 Qt纯原创代码实现GB28181组件/自动点播拉流并推流/支持录像回放和下载/性能凶残 全网原创再次熬夜升级/支持云台预置位的onvif设备模拟器/虚拟监控摄像头/可设置主码流子码流 使用ffmpeg播放不同节目/实时切换节目并推流/推流不同的节目流 新版监控GB28181调试神器V2026发布/对标wvp/绿色版开箱即用 对标国际Onvif工具odm/新版视频监控onvif调试助手V2026发布/简单好用开箱即用 全网唯一/不依赖浏览器和qlocation/纯代码绘制实现的地图组件/短小精悍 监控设备模拟神器V2026全新含泪发布/支持onvif和gb28181/支持云台控制和预置位 将地图组件运行在浏览器上/qtlocation都做不到/轻巧好用/自研原创 不依赖任何AI代码/纯qpainter实现的航线规划/飞行轨迹规划和模拟/无人机轨迹 如何快速搭建一套支持ONVIF的安防监控系统 没有想不到只有做不到/万能地图标注点marker设计/各种参数需求场景/你要的都有 呕心沥血/历时半年/古法编程/纯QPainter实现的地图控件/性能爆表 绘制1000个无人机只需7ms/优化到极致/地图组件海量标注点/纯QPainter绘制的威力 实时轨迹/轨迹回放/多条轨迹同时回放/轨迹平滑移动/移动速度和间隔/自动旋转角度 记一个优化改良的实施过程/纯QPainter实现的地图组件/支持天地图谷歌地图等 性能提升百倍/Qt地图组件纯QWidget绘制/缓存瓦片技术/多线程加载绘制 纯QWidget绘制实现电子地图控件/非qml非web/多线程下载和加载瓦片/支持各种图形 Qt实现离线地图下载/瓦片地图下载/划区域下载离线地图/多线程批量下载 Qt实现电子地图热力图的绘制/热力图叠加图层/拖曳缩放移动 Qt实现行政区划轮廓图下载/一键批量下载/可编辑/天地图高德地图百度地图 全网首个源码级的跨平台视频监控系统方案/持续迭代更新/视频监控系统轮询管理的优化 Qt/C++开发监控GB28181系统/个人理解/要点总结/经验分享 Qt开发集群地面站管理平台/飞行轨迹动态规划和模拟/自由规划路径/飞行轨迹模拟 记一次Qt视频监控系统的优化/双击打开分组可能崩溃的BUG/排对打开通道过程中关闭通道可能崩溃的BUG Qt优化onvif设备搜索/一键批量搜索/onvif设备模拟器/几千路并发/实时推流/虚拟监控摄像头 Qt/C++地图最简示例/在线离线切换/地图视图切换/执行各种js函数交互 十年磨一剑/支持海康大华宇视华为天地伟业等所有厂家的视频监控系统/支持264和265/硬解和GPU绘制/支持国产麒麟和UOS以及RK3588等环境 祖传独创/全网唯一/Qt结合ffmpeg实现读取ts文件节目流/动态切换多节目/实时切换不同轨道
离线获取任意经纬度海拔高度?一个100行代码的跨平台方案
飞扬青云 · 2025-12-23 · via 博客园 - 飞扬青云

在地图开发中,有一个看似简单却常常令人头疼的需求:如何获取指定经纬度位置的海拔高度(即绝对高程)?

我们知道,绝对高程(又称海拔)是指地面某点沿重力方向到大地水准面(通常以平均海平面为基准)的垂直距离。我国采用的是“1985国家高程基准”,以青岛验潮站1952–1979年的黄海平均海水面为基准,并在青岛观象山设立了国家水准原点,其高程为 72.260 米

然而,尽管这个需求很常见,主流地图厂商(如高德、百度、腾讯地图等)并未开放获取海拔高度的 API 接口。原因可能是出于数据安全或政策限制。虽然 Google Maps 的 Elevation API 能提供高程数据,但在国内基本不可用——开发者或许能FQ调试,但用户几乎 100% 无法访问,且必须依赖在线网络,离线场景完全无解。

于是,我们不得不另辟蹊径。

曾经的尝试:GDAL 太重,TinyTIFF 不够

最初想到的是使用开源地理空间库 GDAL。它确实支持读取 .tif 格式的数字高程模型(DEM)文件,并从中提取高程值。实测可行,但问题也很明显:

  • 源码庞大(2000+ 文件),编译极其复杂;
  • 依赖众多(如 libtiff、zlib、SQLite 等);
  • 集成到移动端或嵌入式项目中成本过高。

后来又尝试了 TinyTIFF 等轻量级 TIFF 解析库,却发现它们仅支持普通图像 TIFF,不支持地理编码信息(GeoTIFF),更无法直接解析高程数据。

几经折腾,几乎要放弃。

转机:原来高程数据可以这么简单!

就在快要放弃时,一次深入 GDAL 使用过程中的观察带来了关键突破:

高程 TIFF 文件中的每个像素灰度值,其实就对应着该位置的海拔高度!

更重要的是,这类 DEM 数据通常还会附带一个 .txt.hdr 的元数据文件。打开一看,内容清晰明了:

ncols         3601
nrows         3601
xllcorner     116.0
yllcorner     39.0
cellsize      0.00027777777777778
NODATA_value  -9999

其中:

  • xllcorner / yllcorner 是左下角(或左上角,视格式而定)的经纬度;
  • cellsize 是每个像素代表的经纬度跨度;
  • 后续数据就是按行排列的高程值(单位:米)。

这意味着:根本不需要复杂的图像解析库!

只要读取这个文本格式的高程数据(或将其转为二进制/内存数组),再根据目标经纬度计算出对应的行列索引,就能在 纳秒级时间 内查到海拔值。

最终方案:100 行代码,全平台通用

基于上述发现,我写了一个极简的高程查询类:

  • 仅需加载一次高程数据文件(可为文本或二进制);
  • 支持任意经纬度快速定位;
  • 纯 C++ / Java / Python 实现,无任何第三方依赖
  • 完全离线,适用于 Android、iOS、嵌入式设备甚至 Web(通过 WASM);
  • 代码不到 100 行,维护成本极低。

从此,再也不用为“杀鸡用牛刀”而烦恼。一个轻量、高效、跨平台的离线高程查询方案就此诞生。


map900

小结

有时候,最复杂的不是问题本身,而是我们一开始选错了工具。
当你发现高程数据本质就是“带坐标的二维数组”时,一切就变得异常简单。

如果你也在做地图、无人机、户外导航或 AR 应用,不妨试试这种轻量级方案——离线、快速、自由可控,何乐而不为?

注:公开的 DEM 数据源包括 NASA 的 SRTM、ASTER GDEM,以及国内部分测绘部门发布的栅格高程数据(需注意合规使用)。


如需示例代码或数据格式解析细节,欢迎留言交流!

四、相关地址

  1. 国内站点:https://gitee.com/feiyangqingyun
  2. 国际站点:https://github.com/feiyangqingyun
  3. 个人作品:https://blog.csdn.net/feiyangqingyun/article/details/97565652
  4. 文件地址:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A 提取码:o05q 文件名:bin_map.zip