【发布时间】:2013-05-26 07:56:22
【问题描述】:
我如何获得我所在位置的实际(准确约 1m)高度?
我尝试注册一个 LocationListener,接收海拔高度,但这不能正常工作甚至不准确。我在 NN 上方约 400m 处显示 7m。
结果:我认为 GPS 并不是一个好的高度提供者。
你知道如何获得这个高度吗?
【问题讨论】:
标签: android gps location height
我如何获得我所在位置的实际(准确约 1m)高度?
我尝试注册一个 LocationListener,接收海拔高度,但这不能正常工作甚至不准确。我在 NN 上方约 400m 处显示 7m。
结果:我认为 GPS 并不是一个好的高度提供者。
你知道如何获得这个高度吗?
【问题讨论】:
标签: android gps location height
大概您请求的是 LocationManager,而不是 LocationListener,并使用 getAltitude() 来获取您的身高。
GPS/GNSS 在海拔高度上不如在经度和纬度上那么好,但为了进行合理的修复,您应该在正确高度的 10m 范围内。请注意,高度已针对使用的大地水准面 (http://en.wikipedia.org/wiki/Geoid) 和基准面 (http://en.wikipedia.org/wiki/Datum_(geodesy) 进行了调整,与您的预期相比,这可能会改变您报告的高度。
但您的位置可能是由实际上不是 GPS 的位置提供商提供的 - 它可能是基于手机信号塔的,也可能是由于航位推算或 WiFi 定位。或者您使用的安卓手机可能只是有一个糟糕的 GPS 集成设计,这会影响您的准确性。
我建议下载一个测试应用程序,例如 GPS 测试(请参阅 https://market.android.com/details?id=com.chartcross.gpstest&hl=en),它会显示您是否有修复,以及 GPS 实际报告的高度。 GPS 测试应用底部的第三个框显示每个定位点的高度、航向和速度值。
【讨论】:
如果您有 GPS、气压计和数据连接,则可以将 GPS 位置发送到多个天气 API 之一以获取本地气压计设置 (p0)。如果 p1 是来自压力传感器的值,那么SensorManager.getAltitude(p0, p1) 将为您提供非常准确的高度。
我认为高度不会有 1 米的精度,但它与您希望的一样准确。
此 SO 问题/答案讨论天气 API: Sealevel Pressure and Temperature Calculation
【讨论】: