如何根据平均海平面计算海拔高度
Posted
技术标签:
【中文标题】如何根据平均海平面计算海拔高度【英文标题】:How to calculate the altitude above from mean sea level 【发布时间】:2012-03-04 04:28:12 【问题描述】:我试图找到如何使海拔高于平均海平面。 此时,它从椭球返回高度。 所以,任何人都知道改变高度值的公式或计算 从椭球到平均海平面的高度值。
感谢大家的帮助
【问题讨论】:
【参考方案1】:正如您所提到的,GPS 将高度作为与 WGS84 参考椭球体的偏移量返回,但大多数人希望看到平均海平面 (MSL),而这两者经常不一致。最常用的方法是在表格中查找 delta,然后根据 GPS 的高度和表格中的 delta 使用它来计算 MSL。
这里有一些 java 代码:https://github.com/NASAWorldWind/WorldWindJava/blob/develop/src/gov/nasa/worldwind/util/EGM96.java。它使用 Worldwind 的其他功能并没有那么复杂,因此您可能可以使用大部分未修改的代码,如果您使用 Java 并且它们的许可证满足您的需求,则可以调整其余代码。
它使用来自 EGM 96 数据集的信息(如果您有兴趣,请链接 here——尽管并非绝对必要),您可以在此处下载:https://github.com/jleppert/egm96/blob/master/WW15MGH.DAC。您将需要 WW15MGH.DAC 文件。它是一个包含 16 位有符号整数的二进制文件。您可以使用 Java 示例向您展示如何访问文件中的数据。如果那是您的事,他们还提供了一个 Fortran 示例。 :-)
这是他们自述文件中的文件信息。
15 分钟全球二元大地水准面高度文件的数据说明:
---- 文件:WW15MGH.DAC
文件的总大小为 2,076,480 字节。该文件已创建 使用 INTEGER2 数据类型格式并且是未格式化的直接访问 文件。文件中的数据从北到南排列在记录中。 文件中有 721 条记录,从 90 N 处的记录 1 开始。 文件上的最后一条记录位于南纬 90 度。对于每条记录,有 是 1,440 个 15 弧分的大地水准面高度,按经度从西到 东从本初子午线 (0 E) 到西边 15 角分 本初子午线 (359.75 E)。在文件中,大地水准面高度以单位为单位 厘米。在检索文件中的 Integer2 值时,除以 100,这将产生一个以米为单位的大地水准面高度。
【讨论】:
链接不起作用。那么你知道有什么函数可以将android的LocationManager中的海拔值(WGS84)转换为海拔海平面值吗? 更新链接@user924以上是关于如何根据平均海平面计算海拔高度的主要内容,如果未能解决你的问题,请参考以下文章