毕业论文 基于android系统的电子地图加载与实现.doc

上传人:文库蛋蛋多 文档编号:2394324 上传时间:2023-02-17 格式:DOC 页数:50 大小:4.95MB
返回 下载 相关 举报
毕业论文 基于android系统的电子地图加载与实现.doc_第1页
第1页 / 共50页
毕业论文 基于android系统的电子地图加载与实现.doc_第2页
第2页 / 共50页
毕业论文 基于android系统的电子地图加载与实现.doc_第3页
第3页 / 共50页
毕业论文 基于android系统的电子地图加载与实现.doc_第4页
第4页 / 共50页
毕业论文 基于android系统的电子地图加载与实现.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《毕业论文 基于android系统的电子地图加载与实现.doc》由会员分享,可在线阅读,更多相关《毕业论文 基于android系统的电子地图加载与实现.doc(50页珍藏版)》请在三一办公上搜索。

1、毕业论文基于android系统的电子地图加载与实现吉林建筑大学测绘与勘查工程学院2013年6月毕业论文基于ANDROID系统的电子地图加载与实现学 生: 指 导 教 师: 讲 师专 业: 地理信息系统所 在 单 位: 测绘与勘查工程学院答 辩 日 期: 2013年 6 月 20 日摘 要随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。在如今这个智能手机系统群雄纷

2、争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限的吸引力。Baidu Map 作为最先推出的网上地图之一,各种数据信息最为全面和准确,本系统通过Baidu Map

3、Api 设计一个能够实现定位、导航和交通信息发布等等功能的在线导航软件。在Android 设备上具有良好的用户界面、响应速度和用户体验。关键词 智能手机 Android Baidu Map 导航应用AbstractWith the rapid proliferation of smart phones, smart phone operating system market, wind and water. In order for smart phone users to check the Internet anytime, anywhere services provided an ef

4、ficient way to expand the function of the system will be applied to the mobile phone terminal, the mobile phone to Internet access via mobile networks, and variety of Web sites and process business. Therefore, the smart phone applications and the need for the service will have broad prospects for de

5、velopment. In todays smart phone system when disputes warlords, 2008, Google introduced a smart phone called the Android open source operating system, which uses Linux kernel, Open Handset Alliance (OHA) members can be free to use and modify the SDK package, the system It has a good open-source natu

6、re of the expansion of. The software includes the operating system, user interface and applications that need to work smart phones all the software. Androids biggest feature is its open architecture, not only has a very good development and debugging environment, but also supports a variety of scala

7、ble user experience, including rich graphical components, multimedia support, and powerful browser. Therefore, for software professionals is, Android platform has unlimited appeal.Baidu Map as the first online map, all kinds of data information is the most comprehensive and accurate, this system thr

8、ough the Baidu Map Api design one to achieve a positioning, navigation and traffic information and more features for online navigation software. In the Android device is a good user interface, speed of response, and user experience.Keywords Smartphone Android Baidu Map Navigation目 录摘 要3ABSTRACT4第一章

9、绪 论71.1.研究内容71.2.研究意义71.3.Android研究现状和发展趋势81.4.GIS研究现状91.5.移动通信技术与GIS的结合发展10第二章 系统分析112.1.研究目标112.2.需求分析112.3.性能分析11第三章 系统开发和运行环境123.1.Android开发环境介绍123.2.Android开发平台搭建123.3.Baidu Map SDK介绍133.4.Baidu Map开发环境集成143.5.系统运行环境18第四章 系统设计194.1.用户界面设计194.2.数据源设计224.3.系统流程图24第五章 系统开发255.1.登陆功能开发255.1.1.登陆界面开

10、发255.1.2.登陆功能实现255.2.地图加载开发265.2.1.地图加载界面开发265.2.2.地图加载功能实现275.3.定位功能开发285.3.1.定位功能界面开发285.3.2.定位功能实现295.4.交通状况功能开发305.4.1.交通状况界面开发305.4.2.交通状况功能实现315.5.卫星云图功能开发325.5.1.卫星云图界面开发325.5.2.卫星云图功能实现335.6.城市定位功能开发345.6.1.城市地位界面开发345.6.2.城市定位定位功能355.7.模糊查询功能开发365.7.1.模糊查询界面开发365.7.2.模糊查询功能实现375.8.周边查询功能开发3

11、85.8.1.周边查询界面开发385.8.2.周边查询功能实现39第六章 系统测试42总 结48参考文献49致 谢50第一章 绪 论1.1. 研究内容了解java语言的语法和特点,熟悉java语言的适用方向并独立搭建java语言的开发环境,学会使用java进行项目开发;了解并熟悉android操作系统,独立搭建android开发环境,学习并掌握android的项目开发;了解并熟练使用baidu api,在android开发环境下集成baidu api的jar包,运用baidu api实现地图加载、漫游、查询等功能。1.2. 研究意义当今社会,手机己经成为人们工作生活中必不可少的一项通讯和娱乐工

12、具。随着手机的不断更新,手机的各种高层服务和应用层出不穷。其中,手机导航服务,是一项新兴且有广阔市场和应用价值的业务,尤其是基于位置的网络地图服务近年来备受人们关注。它利用移动终端的定位技术,通过移动通信网络与手机地图应用服务器之间的互联通信,提供给客户各种与位置相关的信息服务,方便了用户的出行。Android平台支持或网络定位的应用开发,并提供给普通开发者非常灵活的展示与控制功能,这为人们在手机上设计与实现地图服务提供了便捷灵活的开发平台。随着计算机和定位技术的飞速发展,全球定位系统(GPS)和地图服务得到了更广泛的重视和应用,将地图有效地与位置定位技术相结合,应用前景十分广阔。据统计,人们

13、的日常生活中,有80%的信息是与位置相关的,然而为了寻找某个地点,人们常常需要耗费大量的精力,所以伴随着现代生活节奏的不断加快,实时的地理位置信息正在成为人们最渴求的信息之一。目前的地图服务主要是以单机或者Web的方式实现,不适合身处外地的用户使用,给用户的出行带来了不便。而手机地图服务的便携性和数据的实时性很好的解决了这一问题,因此,设计手机地图服务的应用具有非常实用的价值。另一方面Baidu于2007年11月推出了一款开源的移动终端软件平台BaiduMap,为普通开发者提供了非常灵活的BaiduMap展示与控制功能。同时,由于BaiduMap的免费性和Android平台的开源性,能够有效降

14、低开发成本,使每个用户自由的获取信息,这也为手机地图服务的普及做出了重要贡献。本人毕业设计的论题为基于android系统的电子地图加载与实现正是基于Android平台开发的,采用的网络地图BaiduMap,该系统可以用来浏览城市的地图,并能对其放大、缩小和移动,同时利用GPS定位技术,实现了自我定位、位置查找和路径跟踪等功能,满足了手机用户基本的地图导航服务需求。1.3. Android研究现状和发展趋势据Gartner最新数据显示,2010年第二、三季度全球智能手机销售继续大幅增长,其中第三季度安卓占全球智能手机市场的25.5%,仅次于塞班,成为第二大智能手机系统。2010第二、三季度与去年

15、同期相比,增度分别是15.4%及22%,增势迅猛。而塞班系统较09年的市场份额,尽管终端销量有大幅度提升,但增势下滑10%,形势非常严峻。其他操作系统的表现则要平稳很多。图1-3-1安卓是首款开源代码的操作系统,采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改安卓的SDK软件包。系统的开源性使其具有良好的拓展性,一方面,为众多移动应用开发者提供了良好的系统性平台,有利于移动应用的集合;另一方面,终端厂商可以针对自身的特殊需要“定制化开发”。与此相比,尽管2010年2月,塞班基本完成开源工作,但由于代码臃肿,用户界面设计缺失,塞班的开源并无实际意义,错失发展良机。据Informa

16、预测,2012年,安卓手机销量将超过诺基亚塞班手机,届时安卓将成为全球最大的智能手机平台。谷歌表示目前安卓手机每日平均激活量为20万部,销售速度加速上涨。我们认为,安卓在全球市场的成长壮大,塞班市场份额不断下跌已成不争事实。安卓操作系统发展迅猛主要得益于免费、开源和良好产业运作策略,这三点为安卓在智能手机市场赢得更多的发展机遇。系统的免费让更多的厂商加入,推动了份额的上升;代码的开源让更多的开发者进入应用开发;应用的丰富吸引了更多用户选择,这也是谷歌值得众多厂商学习的地方。此外,谷歌通过OHA联合众多厂商进行系统研发,不断更新版本,将系统应用推广到更多的终端产品中,确保用户体验持续改善。1.4

17、. GIS研究现状世纪90年代以来,由于计算机技术的不断突破以及其它相关理论和技术的完善,GIS在全球得到了迅速的发展。在海量数据存储、处理、表达、显示及数据共享技术等方面都取得了显著的成效,其概括起来有以下几个方面:硬件系统采用服务器/客户机结构,初步形成了网络化、分布式、多媒体GIS;在GIS的设计中,提出了采用“开放的GIS环境”的概念,最终以实现资源共享、数据共享为目标;高度重视数据标准化与数据质量的问题,并已形成一些较为可行的数据标准;面向对象的数据库管理系统已经问世,正在发展称之为“对象-关系DBMS(数据库管理系统);以GIS为核心的“3S”技术的逐渐成熟,为资源与环境工作提供了

18、空间数据新的工具和方法;新的数学理论和工具采用GIS,使其信息识别功能、空间分析功能得以增强等等。在GIS技术不断发展下,目前GIS的应用已从基础信息管理与规划转向更复杂的区域开发、预测预报,与卫星遥感技术相结合用于全球监测,成为重要的辅助决策工具。据有关部门估计,目前世界上常用的GIS软件己达400多种国外较著名的GIS软件产品有Auotodesk系列产品、Arc/Info、MapInfo及其构件产品、Intergraph、Microstation等,还有Web环境下矢量地图发布的标准和规范,XML、GML、SVG等等。我国GIS软件研制起步较晚,比较成熟的测绘软件主要有南方CASS,Map

19、GIS,GeoStar,SuperMap等。尽管现存的GIS软件很多,但对于它的研究应用,归纳概括起来有二种情况:一是利用GIS系统处理用户的数据;二是在GIS的基础上,利用它的开发函数库二次开发用户专用的GIS软件。目前已成功应用包括资源管理、自动制图、设施管理、城市和区域规划、人口和商业管理、交通运输、石油和天然气、教育、军事等九大类别的一百多个领域。在美国及发达国家,GIS的应用遍及环境保护、灾害预测、城市规划建设、政府管理等众多领域。近年来,随着我国经济建设的迅速发展,加速了GIS应用的进程,在城市规划管理、交通运输、测绘、环保、农业等领域发挥重要的作用,取得了良好的经济效益和社会效益

20、。1.5. 移动通信技术与GIS的结合发展WAP/WML技术作为无线互联网领域的一个热点,已经显示了其巨大的应用前景和市场价值。WAP柳ML技术与GIS技术的结合产生了移动GIS(MobileGIS)应用和无线定位服务LBS(LocationbasedServices)。通过WAR/WML技术,移动用户几乎可以在任何地方、时间获得网络提供的各种服务。无线定位服务将提供一个机会使GIS突破其传统行业的角色而进人到主流的IT技术领域里。大多数的分析家都认为,到2010年,无线网络将成为全球数据传送的主要途径。GIS的未来将会由其机动性所决定。当前用于地理信息交互的语言还不足以完成真正的“设备无关接

21、口”的互操作。各种移动设备对于从地理信息服务器所获得的信息,其表现方式是各不相同的,用户输人方式也不相同。因此,对于不同的移动设备需要一种统一的标记语言。无线定位服务将提供一个机会使GIS突破其传统行业的角色而进人到主流的IT技术领域里:大多数的分析家都认为,到2010年,无线网络将成为全球数据传送的主要途径。GIS的未来将会由其机动性所决定。第二章 系统分析2.1. 研究目标了解Android应用程序的设计和开发过程;使用Baidu API进行导航软件的开发。2.2. 需求分析随着信息化建设的飞速发展,人们的需求也不断地提高,对导航系统的需求也在持续增加。与此同时,iOS、Android、W

22、indow Mobile等智能手机系统的发展,使手机已不再只有简单的通讯功能,其强大的可扩展性为用户提供了用手机进行各类娱乐活动、完成各项工作任务的可能,导航软件也成为智能手机的标准配备。再加上智能手机也已经成为了人们生活的一部分,能在手机端实现一款导航软件将会给出行或旅游的朋友们带来诸多的方便。从上面的描述中可以基本了解软件的功能需求:启动App Widget应用程序,登录系统;地图界面:可查看的地图信息、平移、缩放、查看当前用户位置;模糊查询:根据用户输入信息查询目的地,视野平移到目的地;周边查询:根据城市信息在一定范围内查询并显示若干的目的地;路况信息:显示当前的交通状况;卫星云图:通过

23、卫星影像查看目的地真实场景;2.3. 性能分析1) 操作简单、界面大方美观;2) 程序响应速迅速、安全性高、信息处理速度快;3) 地图信息详细、准确,并且支持离线地图;第三章 系统开发和运行环境3.1. Android开发环境介绍Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java

24、开发有较大区别的,所以还需要有Google提供的Android SDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发:Windows XP 32位操作系统;Java JDK 1.6;Eclipse 3.8;Android SDK;ADT。Baidu Map API for Android v2.1.1;3.2. Android开发平台搭建Android开发平台搭建步骤:首先到http:/www.eclipse.org/

25、downloads/下载Eclipse集成开发环境并且解压,这里推荐下载Java EE 集成版本,可以为平台的搭建省下不少工作。接着再去 站点下载SDK后安装,下载 SDK1.5后解压。第一步下载工序就结束了。双击Eclipse解压后目录中的eclipse.exe然后启动,选择Eclipse菜单中的Help- Install New Software- 选项卡上的Available Software,点击右侧的“Add”输入http:/dl-在“Work with”下拉菜单中选择刚才输入的网址。过一会就会出现一个Developer Tools选项,勾上以后点击Next以后Eclipse会自动网

26、上查找Android 开发工具插件,然后找到Android DDMS和Android Development Tools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse。重启后选择Eclipse菜单中的Windows- Preferences 在左侧的Android项目中SDK Location中填入Android SDK解压后的目录,然后点击Apply。在WindowsXP的系统变量中的path变量中添加一个值,该值指向解压后的Android SDK目录下的tools文件夹。3.3. Baidu Map SDK介绍百度地图And

27、roid SDK是一套基于Android1.5及以上版本设备的地图开发工具。您可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。百度地图Android SDK提供的所有服务是免费的,接口使用无次数限制。图 3-3-1Baidu Map SDK 功能介绍:地图展示:包括2D图、卫星图、3D图地图展示。地图操作:提供平移、缩放、双指手势操作、底图旋转等地图相关操作。自定义绘制:提供自定义绘制点、线、面基本几何图形的功能。百度地图导航:提供调起百度地图Android版(v5.0及以上版

28、本)导航功能。地图搜索:提供根据关键字进行范围检索、城市检索和周边检索。且支持LBS云检索用户自有数据。详情查询:提供餐饮类的POI的详细信息查看(Place详情)。线路规划:提供公交、驾车和步行三种类型,多种方案(不含地铁、时间优先、最少换乘、最少步行)的线路规划。地理编码:提供地址信息与坐标之间的相互转换。位置标注:提供一个或多个POI位置标注,且支持用户自定义图标。实时路况:提供城市实时交通路况信息图。离线地图:提供离线地图功能,可节省用户流量。定位:采用GPS、WIFI、基站、IP混合定位模式,请使用Android定位SDK获取定位信息,使用地图SDK定位图层进行位置展示。3.4. B

29、aidu Map开发环境集成开发工具Android开发工具有很多,开发者可根据自己的喜好进行选择。百度推荐开发者使用Eclipse作为自己的开发工具。工程配置首先:在工程里新建libs文件夹,将开发包里baidumapapi_v2_1_1.jar拷贝到libs根目录下,将libapp_BaiduMapApplib_v2_1_1.so和libvi_voslib.so拷贝到libsarmeabi目录下(官网demo里已有这三个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发

30、者可根据实际需求自行添加。图 3-4-1然后:在工程属性-Java Build Path-Libraries中选择“Add External JARs”,选定baidumapapi_v2_1_1.jar,确定后返回。通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了,但是想要访问数据,使用Baidu Map API的控件还需在Manifest中添加使用权限及Android版本支持:添加屏幕及版本支持:com.baidu.mapapi.map.MapView控件就是地图显示控件:在地图显示的Activity添加以下代码:在使用Baidu Map SDK是还有一个类比较重要BM

31、apManager,BMapManager需要一个密钥,密钥可以通过BMapManager mBMapMan = null; MapView mMapView = null;获得密钥后在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”:super.onCreate(savedInstanceState);mBMapMan=new BMapManager(getApplication();mBMapMan.init(我的Key, null); /注意:请在试用setContentView前初始化BMapManager对象,否则会报错setContentView(R.lay

32、out.activity_main);mMapView=(MapView)findViewById(R.id.bmapsView);mMapView.setBuiltInZoomControls(true);/设置启用内置的缩放控件MapController mMapController=mMapView.getController();/ 得到mMapView的控制权,可以用它控制和驱动平移和缩放GeoPoint point =new GeoPoint(int)(39.915* 1E6),(int)(116.404* 1E6);/用给定的经纬度构造一个GeoPoint,单位是微度 (度 *

33、1E6)mMapController.setCenter(point);/设置地图中心点mMapController.setZoom(12);/设置地图zoom级别重写以下方法,以便Baidu Map SDK自行管理释放地图资源:Overrideprotected void onDestroy()mMapView.destroy();if(mBMapMan!=null)mBMapMan.destroy();mBMapMan=null;super.onDestroy();Overrideprotected void onPause()mMapView.onPause();if(mBMapMan!

34、=null)mBMapMan.stop();super.onPause();Overrideprotected void onResume()mMapView.onResume();if(mBMapMan!=null)mBMapMan.start();super.onResume();至此Baidu Map SDK的开发环境搭建已经基本完成,但要使用定位功能还需要到3.5. 系统运行环境Android 操作系统 2.1以上;内存RAM 512MB 以上;存储空间 512MB 以上。第四章 系统设计4.1. 用户界面设计在运行程序菜单中点击baiduTest文件便可以baiduTest打开软件,

35、如图4-1-1所示:图4-1-1之后进入到系统登录界面,登陆界面的设计十分简洁,用户输入框和密码输入框再加一个登录按钮组成,屏幕下方输入键盘会自动弹出,如图4-1-2所示:图4-1-2当用户名、密码都输入争取以后点击登陆按钮就来到了地图的主界面,进入主界面。主界面包括屏幕上方和下方的两个状态条,中间是地图显示区域,左侧中间偏上有一个功能按钮,这个按钮也就是系统查询等功能的入口,如图4-1-3所示:图4-1-3点击功能按钮,左侧会弹出功能菜单,通过功能菜单可以进行查询、搜索、定位等操作,如图4-1-4所示:图4-1-4以上是系统的主要功能界面,具体的功能会在系统开发和使用具体介绍。模块设计从功能

36、需求上分析可以看出,整个应用程序应划分为4个模块,分别是程序启动、用户界面、后台服务和数据库适配器,各模块之间的关系如图4-2-1所示:图 4-2-1从模块结构图中不难看出,后台服务是整个应用程序的核心,主要是“数据获取模块”,负责交互信息和获取数据等。后台服务在程序启动时就由AppWidgetProvider启动,也可由用户界面通过startService()进行启动,启动后的后台服务将一直保持运行状态。地图数据和城市坐标数据是从手机中获得,而没有直接通过网络访问百度服务器数据。之所以这么实际,一方面可以避免因网络通信不畅造成界面失去响应;另一方面,可以节约流量。 数据库适配器封装了所有对S

37、QLite数据库操作的方法,用户界面和后台服务会调用它来实现数据库操作。在完成用户界面设计、数据库设计和模块设计后,至此程序设计阶段基本完成。4.2. 数据源设计系统的数据来源主要有三个:SQLite数据源、离线的地图文件、百度数据。在这里我说明一下这种设计的原因:从系统本身来看,不使用离线地图文件是可以完成所用功能的,可以直接从百度的服务器获得数据。但是也就要考虑流量的问题,在无线网的覆盖范围以内就不考虑了,如果用手机本身的流量的话,流量就是个大问题了,就全国的地图数据而言就有一个多GB,概略全国地图也要30多MB,对于手机流量来说压力很大。所以我采用地图数据用离线地图文件加载,动态的数据从

38、百度服务器获取的方案,离线的地图文件保存在sdcard上的/BaiduMapSDK/vmp/h/路径下,也就是/storage/sdcard1/BaiduMapSDK/vmp/h路径下,如图4-3-1所示:图4-3-1目录下的.dat文件便是离线地图文件,而DVUserdat.cfg文件是离线地图文件的索引文件,Baidu Map SDK是通过DVUserdat.cfg去找到离线地图文件。至于SQLite数据我使用了两张表去存储全国各省的名称、坐标,以及离线地图文所包含的城市名称、坐标、所归属的省,以下表格4-3-1和表格4-3-2是表的详细信息:sheng_table表:属性数据类型说明id

39、integer每个省的主键nametext省的名称jdDouble省中心经度坐标wdDouble省中心纬度坐标表格4-3-1city_table表:属性数据类型说明idinteger城市的主键Nametext城市的名称JdDouble城市中心经度坐标WdDouble城市中心纬度坐标Sidinteger所归属的省的id表格4-3-2因为系统的查询是以城市为单位,所以在SQLite数据下设计这两张表不光可以节省一定的流量,而且可以对查询提供方便。4.3. 系统流程图图 4-4-1第五章 系统开发5.1. 登陆功能开发5.1.1. 登陆界面开发系统打开以后,首先进入系统的登陆界面,如图5-1-1-1

40、所示:图 5-1-1-1项目下layout目录下的app_login_act.xml文件就是登陆界面的实现文件,这个界面所使用的线性布局,控件从上到下分别是用户名的EditText和密码的EditText,然后是提交按钮,软键盘是通过项目根目录下AndroidManifest.xml设置的自动弹出,代码为:android:windowSoftInputMode=adjustPan|stateVisible;5.1.2. 登陆功能实现登陆功能的业务逻辑实现是在com.example.baidutest.activity目录下的LoginActivity中实现的,实现代码为:private OnClickListener onClickListener = new OnClickListener() Overridepublic void onClick(View

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号