objective-c - 关于iOS高德地图的几个问题
迷茫
迷茫 2017-04-17 17:30:37
[iOS讨论组]

这几天在做一个关于跑步的app,自己做了一个记录跑步轨迹的demo,但是有几个问题想请教一下:

1.在起始位置的定位误差较大,请问如何排除这一地方的误差?

对于问题1,个人感觉是由于GPS定位尚未稳定,所以进行划线的定位点跳跃太大。只要待GPS定位稳定后,再进行记录就可。

2.在运动过程中,画出的线段不平滑,如何将这些短线段拟合成平滑曲线?

没有一个好的算法,进行对采样点轨迹进行拟合。

希望大家提供解决思路,以下是实际测试的轨迹图。

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
怪我咯

呵呵我以前是高德的,可惜不是AMAP团队的。

  1. 第一个问题你说对了, CLLocation 经纬度信息中有 精度的,如果偏差很大就不要记录了。

  2. 第二问题就是抽稀问题了,很巧我也做过一个自行车记录的APP,如果想把线变得平滑我有个好算法(亲测)

思路: 遍历记录的GPS位置点,相邻的两个比对,把前后速度方向偏差在15度之内的点删掉,就可以绘制出一条美观的路径图。

当然你要根据具体需要,决定这个角度阀值是多少,是不是很简单?

祝你好运。

PHP中文网

你是通过 CLLocationManager 拿的坐标呢还是通过地图直接拿的呢? 如果是 CLLocationManager 的话,存在一个火星坐标转换的问题,你的第一个问题有可能跟这个有关。

阿神

对于第一个问题,在国内apple使用的是高德地图,坐标系是GCJ02。使用CoreLocation获取的坐标,获取的坐标应该是基于WGS84,使用中会出现误差。可以使用MKMap提供的API,在高德地图中不会出现误差。

问题2,不清楚你画线使用的是什么方法,UIBezierPath应该可以。我在做OS X开发的时候使用NSBezierPath可以完美的划线。

仅供参考,欢迎探讨交流。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号