目前软件所包含的功能大致如下:
1 GPS 定位:利用 Baidu API 提供的接口,方便快速获取当前位置。
2 轨迹记录:根据 GPS 坐标改变,在 Map 上绘制出移动轨迹,并计算出运动速 度与统计移动的距离等。
3 指南针:使用传感器在地图中设计指南针,更好的判别方向。
4 搜索功能:根据用户输入搜索获取位置。
5 导航功能:提供自驾车路线,公交路线,以及步行路线导航。
3.1 工具栏模块
1 语音搜索
语音搜索采用的是系统调用的形式,若要使用语音搜索功能,必须满足两个条件:一是系统必须安装了 Google Voice(一般系统默认自带) ,二是必须处于 联网状态(因为语音搜索需要联网查询)
2 地点搜索
上面介绍了语音识别功能,将我们说的话识别成文本 String 类型,并设置 在编辑框中,剩下的就是点击搜索按钮所要执行的搜索事件功能了。
3 删除图层
删除图层的功能比较简单,主要完成的任务就是清空 MapView 上面多余的图 层,并且把一些统计结果清空,如:轨迹记录的平均速度、距离等。直接调用 mapView.getOverlays().clear()即可完成清空。
4 我的位置
(1)逻辑比较简单,首先判断 mLocationGeoPoint 是否为空,若为空则仍没有 获取到位置,因此点击的时候提示用户请稍后。若不为空,则调用 mapController.animateTo(mLocationGeoPoint)直接把地图中心点移动至该点。
3.2 轨迹记录模块
那么这个轨迹记录功能到底是怎么实现的呢?前面我们刚讲完我的位置的 功能实现,其实延伸上面的功能,在我的位置发生改变时,把两次位置连成一条 直线,当所连直线足够多且短的时候,就可以近视为一段轨迹。添加一个开关按 钮控制轨迹记录器的开启与关闭,并统计相应的平均速度和总路程。
3.3 位置分享模块
那么我们的位置信息通过什么手段分享给好友呢?当时能想到的一个思路 就是通过搭建服务器,把自己的位置信息上传至服务器,然后通过服务器进行中 转发送到好友手机上。 不过这个方法需要服务器的支持,由于当时只有自己一个 人开发,没有那么大的心机去研究服务器,于是想了另外一种办法去实现。 那就是采用短信的形式,把自己的当前位置信息(经纬度)发送到好友的手 机上。当捕获到带有位置信息的短信后,进行经纬度的解析,并且显示在手机地 图上。
3.4 Menu 菜单模块
当按下 Android 的 Menu 菜单的时候,我们将会看到底部弹出一个菜单。有 如下功能键:我的位置、公交换乘、驾车导航、分享位置、关于地图、退出地图 等按钮,以下将一一为大家介绍。