基于Andriod环境的地图查询系统设计课程设计说明书.docx
《基于Andriod环境的地图查询系统设计课程设计说明书.docx》由会员分享,可在线阅读,更多相关《基于Andriod环境的地图查询系统设计课程设计说明书.docx(28页珍藏版)》请在冰豆网上搜索。
基于Andriod环境的地图查询系统设计课程设计说明书
1.系统描述1
1.1问题描述1
1.2需求分析1
1.2.1用户体验需求1
1.2.2功能需求1
1.3可行性分析2
1.3.1经济可行性2
1.3.2操作可行性2
1.3.3技术可行性2
2.背景资料说明3
2.1Android环境说明3
2.2XX地图接口说明3
2.3系统的体系结构图4
3.系统概要设计4
3.1总体框架图4
3.2各部分功能描述5
4.总体详细设计6
4.1界面设计6
4.1.1主界面设计6
4.1.2路线查询界面设计7
4.1.3校园周边信息查询界面设计7
4.1.4校园定位界面设计8
4.1.5地图界面的设计8
4.1.6查找列表界面设计9
4.2各模块逻辑图9
4.2.1路线查询模块9
4.2.2校园周边信息查询模块10
4.2.3校园定位模块11
4.3详细代码设计12
4.3.1AndroidManifest.xml文件的修改12
4.3.2资源文件的设计13
4.3.3程序控制代码设计13
5.测试和结果说明14
5.1启动模拟器14
5.2测试各模块15
5.2.1路线查询测试15
5.2.2校园周边信息查询测试17
5.2.3校园定位测试19
5.2.4卫星地图和街道地图测试19
6.总结与展望19
6.1总结19
6.2展望20
7.参考文献20
基于Andriod环境的地图查询系统设计
1.系统描述
1.1问题描述
设计一个基于android环境的地图查询系统设计,整个设计是建立在理工大学的地图导航之上。
该系统能够提供理工大学校区定位的查询;能够为用户提供用户需求的源点和终点路线的查询,其包含公交查询、驾车查询和步行查询;能够提供校园周边信息的查询,如餐饮、银行和交通等信息的查询。
1.2需求分析
1.2.1用户体验需求
一个成功的Android应用程序往往需要提供良好的用户体验。
良好的用户体验体现在以下几点:
[1]界面友好
用户界面要简洁直观,并且易于操作。
[2]快速响应
快速处理用户的输入或请求,对于有些需要较多时间的应用程序,可以在它处理时,给用户一个提示,让用户知道程序还在运行中。
[3]无缝性
Android应用程序模型的构建是能够允许用户在不同的应用程序之间进行流畅的切换。
所以当用户正在做一些其他的事情,如在接或查看地图是,SMS服务每次都在短信收到时弹出一个对话框,这很快就会使用户崩溃,需要引入通知机制,来使用户能够自己控制。
1.2.2功能需求
基于android环境的地图查询系统扮演着与用户直接交互并提供服务的重要角色,它需要提供有好的、方便的用户操作界面,接收用户的各项操作并将这些操作转化成与之对应的命令,采用用户活动的方式完成各个服务逻辑流程。
其功能需求主要包含一下容:
[1]地图缩放的功能
用户能够通过此缩放功能,随时放大某一块感兴趣的地图数据,或者缩小当前的地图信息到更高一个视觉观察层次。
[2]视图模式切换功能
在显示地图信息的时候,应该提供给用户显示地图的街道信息和卫星信息两种常规的视图模式,用户可以根据自己的需要选择一种合适的视图模式。
[3]路线查询功能
在用户的起点或者用户自己设定的起点和终点后,提供起点到终点公交查询,并给出从起点到终点可供选择的公交查询列表,在用户选中需要的项后给出XX地图的路线行走信息。
同时还提供驾车查询和步行查询,它们给出起点到终点的经纬度坐标,并给出两点间的距离。
[4]校园周边信息查询功能
提供给用户校园周边信息查询的功能,如提供“餐饮”、“银行”、“交通”等周边信息。
能使用户很方便地寻找需要的服务,返回该服务商家的地图地理位置坐标同时将该坐标标志出来。
[5]校园定位
提供给用户理工大学余家头校区和马房山校区的地图定位,同时在地图上标志出来。
1.3可行性分析
可行性研究的目的就是用最小的代价在最短的时间确定该软件项目是否能够开发,是否值得去开发。
可从三个方面分析研究每种解决问题的可行性。
1.3.1经济可行性
基于android环境的地图查询系统是一个C/S系统。
服务器端使用的是XX提供的XX地图API接口,此接口可很好的提供本系统所需要的所有关于地图的功能,同时该接口是免费的只需要注册一个XX账号申请XXAPI的KEY即可。
客户端即本系统,由于很大一部分的操作是由XX地图接口处理的,所以客户端所有完成的工作量并不大。
该系统带来的利益却是巨大的,能够实现主流的用户需求,所以在经济上是可行的。
1.3.2操作可行性
使用XX地图查询地理坐标是XX地图提供给用户的一个合法的使用权限,并且地图查询系统属于一种常规的需要。
该系统使用方便、高效,不会出现违规的操作,同时操作快捷也易于掌握。
1.3.3技术可行性
Android的地图查询系统,所需要的背景知识是一些基础的java和对XX地图一些接口类的使用。
这些在XX地图的用户手册中都很好的说明,在对这些背景知识有了较好的了解之后便可在较短的时间开发出一个功能完善的系统。
2.背景资料说明
2.1Android环境说明
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
本次地图查询系统选择的是Android环境,是由于其有如下的优点:
Ø源代码完全开放,便于开发人员更清楚的把握实现细节,便于提高开发人员的技术水平,有利于开发出更具差异性的应用,同时整个系统是免费的。
Ø采用了对有限存、电池和CPU优化过的虚拟机Dalvik,Android的运行速度比想象的要快得多。
Ø具有强大的Linux社区的支持。
Ø应用程序都是基于Java开发的,Java具有一次编写,到处运行的跨平台性。
实现了能够在所有的Android设备中运行,真正做到了硬件无关性,降低了开发者的负担。
Ø具有全球一半以上的市场占有率。
2.2XX地图接口说明
XX地图是XX提供的一项网络地图搜索服务,覆盖了国近400个城市、数千个区县。
在XX地图里,用户可以查询街道、商场、楼盘的地理位置,也可以找到离您最近的所有餐馆、学校、银行、公园等等。
XX地图AndroidSDK是一套基于Android2.1(v1.3.5及以前版本支持android1.5以上系统)及以上版本设备的应用程序接口。
开发者可以使用该套SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,可以轻松访问XX地图服务和数据,构建功能丰富、交互性强的地图类应用程序。
XX地图AndroidSDK提供的所有服务是免费的,接口使用无次数限制。
只需申请密钥(key)后,便可使用XX地图AndroidSDK。
任何非营利性产品可以直接使用。
XX地图提供的接口包含以下功能:
Ø地图展示:
包括2D图、卫星图、3D图地图展示。
Ø地图操作:
提供控制平移、缩放、底图旋转、变换视角等地图相关操作的功能。
Ø自定义绘制:
提供自定义绘制点、线、圆、矩形、凸多边形和文字的功能。
ØXX地图导航:
提供调起XX地图Android版(v5.0及以上版本)导航功能。
Ø地图搜索:
提供根据关键字进行围检索、城市检索和周边检索。
且支持LBS云检索用户自有数据。
Ø详情查询:
提供餐饮类的POI的详细信息查看(Place详情)。
Ø线路规划:
提供公交、驾车和步行三种类型,多种方案(不含地铁、时间优先、最少换乘、最少步行)的线路规划。
Ø地理编码:
提供地址信息与坐标之间的相互转换。
Ø位置标注:
提供一个或多个POI位置标注,且支持用户自定义图标。
Ø实时路况:
提供城市、城际(城市之间的高速)实时交通路况信息图。
Ø离线地图:
提供离线地图功能,可节省用户流量。
Ø定位:
采用GPS、WIFI、基站、IP混合定位模式,请使用Android定位SDK获取定位信息,使用地图SDK定位图层进行位置展示。
2.3系统的体系结构图
系统的体系结构图如图1所示:
图1.系统体系结构图
3.系统概要设计
3.1总体框架图
在设计系统功能架构时,基于android环境的地图查询系统包含三个主要的模块:
路线查询,校园周边信息查询,校园定位。
其系统总体框架图如图2所示。
图2.系统总体框架图
3.2各部分功能描述
(1)视图模式切换及地图缩放
功能描述:
显示一个地方的卫星图、街道图和对地图进行放大缩小
应用场景:
当一个用户想查看一个地方的街道情况或更清晰地图时,可以使用此系列功能来进行查看。
(2)路线查询
功能描述:
提供起点到终点公交查询,并给出从起点到终点可供选择的公交查询列表,在用户选中需要的项后给出XX地图的路线行走信息。
同时还提供驾车查询和步行查询,它们给出起点到终点的经纬度坐标,并给出两点间的距离。
应用场景:
当一个用户想查看从一个地方到另个一地方的公交坐车路线或者行走路线时,可以使用此系列功能进行查看。
(3)校园周边信息查询
功能描述:
提供给用户校园周边信息查询的功能,如提供“餐饮”、“银行”、“交通”等周边信息。
能使用户很方便地寻找需要的服务,返回该服务商家的地图地理位置坐标同时将该坐标标志出来。
应用场景:
当一个用户想查看理工大学余家头校区校园周边的一些服务时,可以使用此系列功能进行查看。
(4)校园定位
功能描述:
提供给用户理工大学余家头校区和马房山校区的地图定位,同时在地图上标志出来。
应用场景:
当一个用户想查看理工大学余家头校区或马房山校区的地理位置时,可以使用此系列功能进行查看。
4.总体详细设计
4.1界面设计
一个Android应用程序的主界面是非常重要的,用户第一眼看到的就是主界面。
为了给用户留下好的印象,主界面的设计要遵循一致的准则,给用户统一的感觉,不觉混乱,控件简洁使用方便,同时在色调的搭配上遵循对比原则。
4.1.1主界面设计
主界面是系统运行后开启的第一个用户界面,包含“理工大学地图导航”的标题文字,同时提供了四个Button按钮分别用来响应“路线查询”、“校园周边信息查询”、“校园定位”和“退出”事件。
主界面设计如图3所示。
图3.主界面设计图4.路线查询界面设计
4.1.2路线查询界面设计
路线查询界面提供了三个TextView分别用来显示“点击按钮更改终点或起点”、“起点”和“终点”,同时还给出了5个Button按钮分别用来响应起点、终点输入、公交查询、驾车查询和步行查询五个事件。
路线查询界面如图4所示。
4.1.3校园周边信息查询界面设计
校园周边信息查询界面提供了一个TextView控件用来显示“选择周边选项”,同时还提供了10个Button按钮分别用来响应周边信息的查询事件。
校园周边信息查询界面如图5所示。
图5.校园周边信息查询界面设计图6.校园定位界面设计
4.1.4校园定位界面设计
校园定位界面提供了一个TextView控件用来显示“选择校区”,同时还提供了两个Button按钮分别用来响应“余家头校区定位”和“马房山校区定位”这两个事件。
校园定位界面如图6所示。
4.1.5地图界面的设计
地图界面提供了一个ToggleButton按钮,主要是用来切换“开启卫星地图”和“关闭卫星地图”两个功能。
地图界面如图7所示。
图7.地图界面的设计图8.查找列表界面设计
4.1.6查找列表界面设计
查找列表界面设计主要提供了两个TextView用来显示“查找列表”和“点击列表选择您要找的位置”,同时还提供了一个ListView用来给出检索的表单项。
查找列表界面如图8所示。
4.2各模块逻辑图
4.2.1路线查询模块
路线查询模块说明:
在进入路线查询界面后,提示用户“点击按钮更改终点或起点”。
然后用户便可以进行公交查询、驾车查询或步行查询,如果用户没有输入终点会提示用户输入终点,如果用户已经输入了则会提供对应的地图服务。
图9.路线查询模块
4.2.2校园周边信息查询模块
校园周边信息查询模块说明:
在进入校园周边信息查询界面后,系统会给出校园周边服务选项供用户选择,在用户选定后系统给出对应的地图服务。
图10.校园周边信息查询模块
4.2.3校园定位模块
校园定位模块说明:
在进入校园定位界面后,系统会给出余家头校区定位和马房山校区定位两种选择,在用户选定后系统给出对应的地图定位服务。
图11.校园定位模块
4.3详细代码设计
4.3.1AndroidManifest.xml文件的修改
在AndroidManifest.xml文件中添加查看手机网络状态,使用GPS,访问网络等相关权限,权限设置如下所示:
name="android.permission.ACCESS_NETWORK_STATE">
name="android.permission.ACCESS_FINE_LOCATION">
name="android.permission.INTERNET">
name="android.permission.WRITE_EXTERNAL_STORAGE">
name="android.permission.ACCESS_WIFI_STATE">
name="android.permission.CHANGE_WIFI_STATE">
name="android.permission.READ_PHONE_STATE">
同时还要在此文件中修改对屏幕的支持,修改如下:
largeScreens="true"
android:
normalScreens="true"android:
smallScreens="true"
android:
resizeable="true"android:
anyDensity="true"/>
4.3.2资源文件的设计
在drawable-hdpi中添加所使用的图片文件。
根据4.1界面设计中所展示的界面在layout文件夹中编写相应的代码,在此并不一一展示代码。
在menu文件夹中分别创建校园周边信息的列表文字说明。
4.3.3程序控制代码设计
分别在src文件加下建立如下java文件,其名称和主要功能如下:
ØMyContant.java用来存放坐标等一些数据,只有数据定义的类
ØGloble.java存放全局共享资源,包含两个类声明,分别是公交路线计划和普通路线计划
ØDlnuNavActivity.java首页的活动控制,主要负责监听退出,路线查询(LineActivity.java),校园周边信息查询(NearActivity.java),校园定位(NavActivity.java)的按钮点击消息,在收到这些意图时跳转到对应的类中处理
ØLineActivity.java路线查询活动控制,响应的起点,终点,公交查找,步行查找,驾车查找的按钮点击消息,包含的类主要是SeekOnClickListener(),PositionOnClickListener(),onActivityResult()。
其中:
[1]SeekOnClickListener()为一个路线查找按钮监听器,当点击“公交查询”或“驾车查询”或“步行查询”后会激活SeekOnClickListener()来处理对应的点击信息。
当并未提交起点和终点或者提交的是空的起点和终点并点击“公交查询”或“驾车查询”或“步行查询”后,会提示用户输入响应的起点和终点信息;当提交非空的起点和终点并点击“公交查询”或“驾车查询”或“步行查询”后跳转到ListActivity.java中进行处理,同时将提交的起点、终点、查找类型标志数据和路线类型数据传递到一个数据缓冲区供ListActivity.java使用。
[2]PositionOnClickListener()为输入位置查找监听器,当点击起点或终点后会激活PositionOnClickListener()来处理对应的点击信息。
PositionOnClickListener()主要是用来提供一个编辑框供用户输入地点名称[3]onActivityResult()为位置查找的Intent执行后返回的result的容.
ØNearActivity.java校园周边信息查询活动控制,响应如“餐饮”,“银行”,“交通”等周边信息的按钮点击信息,创建的类是MyListener()。
MyListener()主要的功能是打开ContextMenu菜单,打开时会调用onCreateContextMenu()进行处理然后显示出资源表中对应的menu资源,当用户选中需要的ContextMenu项后,onContextItemSelected()会将消息提交到ListAvtivity.java中进行处理,同时将提交的周边信息类型及列表项传递到一个数据缓冲区供ListActivity.java使用。
ØNavActivity.java校园定位活动控制,响应余家头校区定位,马房山校区定位的按钮点击消息。
当点击“余家头校区定位”或“马房山校区定位”时,会跳转到MapViewActivity.java中进行处理,同时将提交的进入地图的类型,对应校区坐标传递到一个数据缓冲区供MapViewActivity.java使用。
ØMapViewActivity.java其中包含MyOverlay()用来把周边信息定位时所用到的圈层,SatelliteButtonListener()卫星地图按钮监听器,MySearchListener()地图查找监听器用来获取周边信息,主类MapViewActivity()主要用来调用XX的API函数显示地图信息。
ØListActivity.java地图列表Activity,包含的主要类是onGetSuggestionResult(),onGetDrivingRouteResult(),MyBaseAdapter()。
onGetSuggestionResult()是用来对用户输入的周边信息选项进行联想词查找,向XX地图的接口提交关键字,然后获取XX地图返回的联想词显示给用户。
onGetDrivingRouteResult()是驾车路线查找回调函数,想XX地图接口提供起点和终点,返回驾车路线的查找信息。
MyBaseAdapter()声明一个ListView的适配器用来适配不同的查找关键字。
5.测试和结果说明
5.1启动模拟器
在Eclipse界面里选择Run菜单,点击RunCunfigurations,弹出一个对话框。
先看Android标签,在Project里找到要运行的项目dlnuNav并选中;在Target标签里,选择之前建立的AVD。
点击Run即可运行。
如图12和13所示
图12.选择项目
图13.选择AVD
5.2测试各模块
5.2.1路线查询测试
修改起点和终点分别改为“华城广场”和“大学(武昌主校区)”,当修改终点时会给出如图14所示的下拉列表供选择,设定完后的界面如图15所示。
图14.地点下拉列表图15.设定完后的界面
当单击“公交查询”时,会给出各个路径查询的下拉列表,如图16所示。
然后选中其中的一项,会得到如图17所示的路径地图,图中给出了起点、终点的标志,还有其行走的路线。
图16.公交查询下拉列表图17.公交路线地图
5.2.2校园周边信息查询测试
在校园周边信息中选择一项作为测试标准,这里选择“餐饮”,当点击餐饮后显示如图18所示的下拉列表项。
在下拉列表中选择“餐厅”,会出现如图19所示的查询列表。
然后我们选择第一项,出现如图20所示的地图表示,地图用A中标出了所要查找的地点。
图18.餐饮下拉列表图19.查找下拉列表
图20.餐饮地点标注图图21.余家头校区
5.2.3校园定位测试
在这里,选择“余家头校区定位”作为参考测试,结果如图21所示,图中标志出了余家头的信息。
5.2.4卫星地图和街道地图测试
如图22所示的便是街道地图,图23所展示的是卫星地图的图景。
图22.街道地图图23.卫星地图
6.总结与展望
6.1总结
在本次基于android环境的地图查询系统设计中,在收获知识的同时,还收获了阅历,收获了成熟。
在此过程中,我们通过查找大量资料,请教同学,网上搜寻解决办法,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在过程中,我学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
虽然本系统仍有很多瑕疵,但它仍是我的骄傲。
相信以后我会以更加积极地态度对待我的学习、对待我的生活。
我的激情永远不会结束,相反,我会更加努力,努力的去弥补自己的缺点,发展自己的优点,去充实自己,只有在了解了自己的长短之后,我会更加珍惜拥有的,更加努力的去完善它,增进它。
只有不断的测试自己,挑战自己,才能拥有更多的成功和快乐!
快乐至上,享受过程,而不是结果!
认真对待每一个过程,珍惜每一分一秒,学到最多的知识和方法,锻炼自己的能力,这个是我在本次课设中学到的最重要的东西,也是以后都将受益匪浅的!
6.2展望
至此,本手机地图服务实现了地图服务的所有基本功能,由于本人能力有限,如果要想进一步继续完善开发,可以从以下几个思路进行完善:
◆实时导航
可以根据GPS提供的坐标点位提供移动的方向、最大速度和跟踪时间等信息。
◆文件导出
可以将每次跟踪路径上的点以文件的方式导出,方便以后需要并且可以与朋友交流,直观地为朋友指明路径。
◆互联网
利用互联网可以和朋友分享旅程。
而在实现上,可以将每次跟踪导出为KML文件,也可以每次更新位置时给指定的服务器发送数据,服务器实时记录位置。
并围绕着轨迹产生一系列的想法,例如:
即时消息、照片展示等有趣的功能。
7.参考文献
[1]《Java完美编程》(美)WalterSavitch编著,电子工业
[2]《Java高级编程》金尊和,干毅民编著,电子工业
[3]《疯狂Android讲义》刚编著,电子工业
[4]《Android应用开发》隆益民编著,大学
[5]《Android程序设计》柯元旦,宋锐编著,航空航天大学
[6]《Android高级编程》(英)RetoMeier编著,清华大学