如何获得我所在位置的实际(精确~1m)高度?
我已经尝试注册一个LocationListener,接收海拔高度,但这不能很好甚至准确。我在NN上方约400米,显示7米。
结果:GPS不是我认为的高度提供者。
您对如何获得这个高度有任何想法吗?
答案 0 :(得分:0)
大概你要求一个LocationManager而不是一个LocationListener,并且getAltitude()来获取你的身高。
GPS / GNSS的高度不如经度和纬度好,但为了合理的定位,您应该在正确高度的10米范围内。请注意,根据大地水准面(http://en.wikipedia.org/wiki/Geoid)和基准面(http://en.wikipedia.org/wiki/Datum_(geodesy))调整高度,这可能会改变您报告的高度与您的预期相比。
但是,您可能会获得由实际上并非GPS的位置提供商提供的位置 - 它可能是基于蜂窝塔的,或者由于航位推算或WiFi定位。或许你正在使用的Android手机有一个糟糕的GPS集成设计,这会影响你的准确性。
我建议下载测试应用程序,例如GPS测试(请参阅https://market.android.com/details?id=com.chartcross.gpstest&hl=en),它将显示您是否有修复,以及您的GPS实际报告的高度。 GPS测试应用程序底部的第三个框显示每个修复的高度,航向和速度值。
答案 1 :(得分:0)
如果您有GPS,气压计和数据连接,您可以将GPS位置发送到多个天气API之一以获取当地气压计设置(p0)。如果p1是来自压力传感器的值,则SensorManager.getAltitude(p0, p1)
将为您提供非常准确的高度。
我认为海拔高度不会达到1米,但它的精确度与您希望的一样准确。
这个问题/答案讨论了天气API: Sealevel Pressure and Temperature Calculation