事情的起因是这样的,首先要从一句话说起:身材很重要。
于是打算跑步,在跑步机上跑五公里通常是这样跑的,5km时速开始,每一百米往上匀速增加速度,直到9.5km时速,然后跑上三公里,最后一公里匀速从9.5km降到5km时速。这样均匀增速,人适应的比较好,可以跑很久都不累。
但是,如果是户外跑步,由于不知道自己的速度,感觉不太累的时候就可能加速跑快了,几分钟就开始大喘气了,要是有个方法可以随时监控到自己的速度,根据时间来均匀加速,这样就可以不用那么累,起到更好的运动效果。
于是就想到用GPS来测速。看了前人写的GPS测试距离的软件,找了一个公园,测试了几圈,发现误差很大。仔细观察后发现,定位的间隔时间很大,导致假设你转了一个小弯,结果测量可能就直接是三角形的一条边了,你要是在两次定位的时间段里面快速跑了一圈四百米,最后结果可能就跟零米差不多了。
那可不可以加快定位间隔,比如两三秒就定位一次,然后打印出及时速度和距离了。说干就干。
参考实例下载:
具体下载目录在 /2013年资料/10月/13日/Android的NDK开发入门示例
先后实验了三种计算两个经纬度之间距离的方法,第三种比较靠谱。看了看海拔不太靠谱,变化很大,还经常出现负值。
先后测试了两秒定位和九秒定位,效果都不好,很明显不准确。一般来讲,我的徒步速度最快7km时速,超过这个速度就非跑不可了,但是结果是我站在原地不动,距离也在不断的上升,速度基本上就是随心所欲,可能一两公里,也可能八九公里。真是令人沮丧。后来想想,这个是场景选择问题。
问题的核心是,定位不准,导致测距不准,自然速度也不准了。即便天气良好,GPS的精度也是理论十米,要是稍微有点风吹草动,信号就不知道被吹到哪里去了。而频繁定位未必就比不频繁定位的精度来得高,画个图大家就明白了。
看看上面的示意图,大家就明白了,无论是否频繁,这两种定位方法都不靠谱。
要想GPS测速准确些,需要更换使用场景:
假定运行速度很快,或者道路是直线,这样定位频繁的效果就会比较好。
要想跑步靠GPS精确测速,这事不是太靠谱,除非跑有规律的长距离直线,降低定位频率,计算出来的平均速度可能更准确一些。
结论:要精确测试徒步或者跑步的速度,用GPS模块不靠谱,必须用其他的方法。
后记:实验了几款只用GPS记录跑步速度的软件,发现和这篇文章说的情况基本一致。
要是哪位大侠有更好的测速方法,可一定要告诉一下兄弟呀,回头我帮忙做测试。
身材很重要,健康很重要!
推荐阅读: