您的位置:首页 > 其它

轨迹记忆

2016-04-12 16:52 190 查看
        最近一个月一直在忙项目的事,到现在基本已经做完了。现在把里面的两个比较好的功能记录一下。一个是路线记忆也即轨迹记忆,顾名思义,就是把你走过的路线记录下来,在需要的时候可以调取路线,返回原先的起点,不至于迷路。另一个是组队,然后队员之间共享位置功能。类似于家人定位等软件,该功能可用于野外探险使用,在野外可以查看队员大概在什么位置,不会导致掉队。除此之外还可以用在好友聚会时查看好友的位置,知道好友大概到什么地方,不会一直空等着。

     本文章先写轨迹记忆的功能,另一功能在下篇文章展示。

     首先,要实现轨迹记忆必须先对当前位置进行定位。目前比较流行的地图软件有百度地图、高德地图,他们都有提供一个开发者平台,可以去他们官网注册开发者帐号,利用百度地图或者高德地图实现实时定位功能,官网有相关地图开发的Demo和api开发文档。本人使用的是高德地图。

     在实现实时定位的前提下,在界面上添加两个按钮,一个是开始记录轨迹按钮(在点击之后切换成停止记录按钮,即在程序中判断Button的text然后以此实现不同的功能,这样做就不用在界面弄太多的按钮),另一个按钮是查看历史轨迹按钮,点击可查看在什么时间下的轨迹列表,点击可查看相应的轨迹。

     点击开始记录轨迹按钮,在地图上当前位置添加一个marker标记“起”,然后开始自己的行走,在行走的过程中,程序实时定位当前位置,并把定位的每个latLng点添加到一个List<latLng>中,然后创建一个PolylineOptions(用于向地图添加多线段),

PolylineOptions ployOptions = new PolylineOptions()

                .addAll(latLngs)

                .color(0xffff0000)

                .width(8);

aMap.addPolyline(ployOptions);

     这样就能实现在地图上画下所行走的路线。在想结束轨迹记录时,点击停止记录按钮,在当前位置添加一个“终”marker。同时将在记录过程中所有的经纬度值保存到数组中,并将此数组写入到文件中。

      查看历史轨迹时调用相对应的轨迹文件,读取文件中的经纬度值数组,获取到该数组后,将其转化成坐标点(latLng),即可像上面一样在地图上添加一个PolylineOptions,显示整条历史路线。这时,只要观察自己的实时位置就可以知道当前位置与历史轨迹之间的关系,也就可以通过行走来使当前位置的图标处于历史轨迹路线上、标记“起”,这也就可以找到“回去”的路了,不至于“迷路”。

      这其中还有好多知识点,不过只要了解地图开发、地图相关api、文件的写入/读取,基本上就没问题了。项目源码无法粘贴出来,只是写了一点思路,想法。其实就是把想要记录的轨迹路线的所有经纬度保存起来,需要的时候再读取相关文件,把经纬度值进行还原,在地图上添加线段即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: