Android手机定位与地图实现

         在一个不熟悉的环境中,获得自己的位置,选择合适的就餐地点,住宿和公交路线成为一项难题。本次的实践项目就是为了解决上述难题的,通过调用百度地图的接口实现定位、查询公交路线、寻找合适的餐饮及住宿等功能,满足人们出行功能。

 

一 需求分析

1.1 功能需求

    1)地图浏览和控制----提供国内大多数城市的浏览和对地图基本控制,如放大、缩小、卫星切换等等。

    2)搜索地点----能够根据用户提供的信息,搜索对应的位置。如火车站地点、餐馆、酒店等等。

    3)公交查询------查询某一城市的特定公交路线。

    4)我的位置---实时定位用户的位置。

1.2 性能需求

         在项目开发完成后,是否能安装在各类实体机上,并且实现预期的功能。

1.3 可扩展性需求

         在未来,随着客户需求的增加,该项目能很好的扩展,来实现更多的功能。

Axure建模 当鼠标停在搜索框中,提示的文字消失;还有一组单选按钮

 

 android 实践项目 总结 (修改)android 实践项目 总结 (修改)

二 系统设计

2.1 本系统主要分为四个模块,如下图所示:

android 实践项目 总结 (修改)

 

1)定位功能模块----利用GPS提供的服务,得到当前用户所在的位置,并且能够根据用户的位置实时更新。

2)公交路线查询模块----可以查询城市的某一特定公交路线的行车路线,并将各站点标识出来。

3 目的地查询模块----用户通过输入具体的城市和地点信息,可以查看该地点的所处在的地图,并将红色的标点标识出来。

4)其他模块。更具用户的需求进行添加。

2.2、系统的操作流程图。

 下图为系统的操作流程图:

 

android 实践项目 总结 (修改) 

2.3、类的相互关系

  在百度地图几种功能的实现中他们拥有的类如下图所示:

android 实践项目 总结 (修改)

  在这项工程中,各个子界面是相互独立存在的,从上图可看出子界面的独立存在的类和共同享有的类;共同拥有的类是实现调用接口,使图形可视化。

2.3.1、定位类的关系

 

android 实践项目 总结 (修改)

 

 

三、系统实现

3.1 系统的实现需要百度地图的授权。首先申请KEY;申请Key后需要在androidManifest.xml取得百度给予的权利:

android 实践项目 总结 (修改)

 

由于系统会在不同屏幕上运行,所以需要适应不同的屏幕,给用户留下好的体验实现的方式是:

android 实践项目 总结 (修改)3.2、主界面

        主界面的标题显示是用setText()方法实现,BMapApiDemoMap的类来展示主窗口。并通过建立一个数组demo对象将进入子界面的按钮显示出来。对过单击列表onListItemClick方法可以进入相对应的子界面中。

 android 实践项目 总结 (修改)

3.3、定位子界面

         通过BaiduMap是地图的操作方法与接口,并通过MapView进行显示地图的视图,默认的地图中心为天安门广场。怎么实现定位?是通过定位服务客户端类LocationClient 调用setOpenGps()方法打开手机的GPS实现实时定位。

android 实践项目 总结 (修改)

 

       从上图中我们能看到普通、默认图标、自定义图标。它们的共能分别是定位模式按钮及定位图标按钮。定位模式是通过LocationMode类实现的,在这里定位模式有三种模式,分别为普通模式、跟随模式、罗盘模式,当点击按钮时通过OnClickListener类进行监听单击的变化,来实现不同的模式。RadioGroup中使用类组单选按钮。如果我们选中一个单选按钮,他会自动取消同一组之前的单选按钮,进行切换定位的图标。

3.4、公交查询子界面

       PoiSearch为搜索类、BusLineSearch为城市公交查询类,这两个类的联合使用能查询公交路线。为了很好的查看公交路线的公交站点,使用popupText显示出来。下图是实例图:

 

android 实践项目 总结 (修改) 

 

3.5、目的地的查询模块。

       主要通过PoiSearch搜寻感兴趣的地方,实现查找。当查找不成功是,会提示未找到结果。

因为查找不可能很精确,所以用一组按钮,显示没有在图中标记感兴趣的点。如图:

 

 android 实践项目 总结 (修改)

 

 

四、测试

 

4.1、功能测试用例测试用例

4.1.1、定位功能的实例测试

         为了检验定位功能,做出了如下的测试:

android 实践项目 总结 (修改)

 

         在测试中,基本符合了实时定位的要求,只是在定位界面中设置的定位模式按钮的功能没有达到要求。

4.1.2、公交查询的实例测试

android 实践项目 总结 (修改)

 

进过上面的测试满足公交路线查询功能。

4.1.3、目的查询的实例测试

 android 实践项目 总结 (修改)

通过测试满足以感兴趣地点的查询。

 4.2 定位实例测试

         根据变换定位图标的形状来测试设计的功能

 android 实践项目 总结 (修改)android 实践项目 总结 (修改)

 

4.2 公交查询实例测试

当输入能容不能查到结果会自动提示

 android 实践项目 总结 (修改)

 

当输入正确时会出现公交路线图

 android 实践项目 总结 (修改)

 

4.3 地点查询实例测试

当输入的地点查找不到时

 android 实践项目 总结 (修改)

当输入正确的地点和名称

android 实践项目 总结 (修改)

 

经过测试我们可以发现,设计的系统基本符合要求。

 

    五 总结

5.1 开发过程遇到的问题和解决

1、android studio 环境的搭建。开始在android studio搭建百度地图开发的环境时,一直提示导入的.jar包不正确,查找了一些android studio配置百度地图环境方式。我一 一试过依然不正确;最终放弃android studio 软件进行开发。本次项目的软件是用曾俊宏提供的eclipse软件进行开发的。

2、网上有很多android百度地图开发的教程,但是我自借鉴他们做的工程时,发先一个很大的问题他们导入的.jar包很多着找不到了,利用现在的.jar包,来写教程给的代码会出问题。因此找到一个合适的.jar 包很重要。还有他们提供的android本版本比较低,虽然在eclipse提示有问题,但是问题很快就消失了。如果我们将程序导入虚拟机或者实体机,我们导入的软件会自动退出,不能正常的工作。

3、在百度地图开发中心申请key也出现了一些问题,有可能申请的key在工程中是不起作用的。在申请时必须输入正确的eclipse 的hash值 和建立工程的包名。否则调不出百度地图的图形或者调出来图形不能满足工程的需要。

5.2 项目的不足与改进计划

 1)、在这次的项目中,算然实现的功能模块很多,但是不能有效的整合在一个界面中,给人一种界面比较乱的感觉。

2)、许多子界面的功能重合,很大的浪费了资源。需要进行代码整合和优化达到系统的优化,使用户更愿意接受。

3)程序托管在开源中国。(永远的q2)。

 5.3 感悟

在整个课程中学到了很多有益的东西

1、在学习中对知识的总结是一件很重要的事情。即能对前段学到的知识进行归纳和了解自己掌握的东西,还能为下阶段学习进行合理的安排,提高学习的效率。

2、对知识要保持求知,求知欲越强越能激发自己的学习欲望。娄老师是我很好的榜样,要向老师多学习。

3、在上周,老师的讲话,我深受启发,只有多学习多掌握知识才能找到自己的兴趣爱好,在工作中才能有更多的选择。

4、在这短短两个月中,从老师这里学到很多的知识,在以后的研究生期间会有利自己的学习。最遗憾的是没有掌握老师给我们建议的学习工具,JAVA 和android不能灵活的应用。

5、学习时间安排不合理,有畏难的思想;主要原因是大学期间懒散的思想,还保留着,在以后的学习中会克服掉。

6、在以后的研究生期间希望还能跟着娄老师学习,并提升自己的能力。

 

相关文章:

  • 2022-02-10
  • 2021-08-04
  • 2021-04-11
  • 2021-06-26
  • 2022-12-23
  • 2022-12-23
  • 2021-12-29
  • 2021-10-16
猜你喜欢
  • 2022-02-11
  • 2021-11-15
  • 2021-12-31
  • 2021-08-28
  • 2021-12-11
  • 2021-12-17
相关资源
相似解决方案