




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文论文题目基于ANDROID的智能导游系统的设计与实现院别计算机学院专业年级学号姓名指导老师完成时间教务处制目录1绪论111课题背景112课题内容113课题目的及其意义22系统开发环境及相关技术221ANDROID开发介绍与环境搭建222JSON简介323STRUTS2框架简介与环境搭建324BAIDUMAPSAPI简介43系统分析431研究目标432需求分析433性能分析54系统设计541用户界面设计542数据库设计643程序模块设计85系统功能模块设计951文件结构与用途952后台定位服务1153MAPAPPLICATIONJAVA类1354登录模块1555首页模块1556导航模块2057周边信息查询模块2158个人资料模块236系统测试257总结26参考文献27致谢28基于ANDROID的智能导游系统的设计与实现摘要本文首先分析讨论ANDROID手机软件开发主要技术,以及国内景区导游系统与智能导游的现状。然后讲述了基于百度地图ANDROIDSDK以及定位SDK技术所设计的ANDROID平台智能导游系统的实现。该系统设计实现了后台定位、景点导航、景点信息浏览与下载、周边查询等实用功能,具有良好的通用性与灵活性。关键字ANDROID;智能导游;导航软件;移动开发;百度地图1绪论11课题背景中国工业和信息部最新公布数据表明,中国智能手机的市场增长率不断攀升,而且,随着移动3G和WIFI热点的不断覆盖,用户对手机的互动娱乐体验也提出了更高要求,各种应用软件开始进入,手机日渐成为互动娱乐的焦点。有关资料显示,我国的旅游业发展实力巨大。首先,是旅游收入增长迅速2013年春节黄金周全国接待游客达到203亿人次,实现旅游收入11706亿元人民币,同比增长达到151和1541;其次,固定资产投入力度的不断加大2009年12月,关于加快发展旅游业意见首次提出“中国旅游日”的概念,旅游业已经出现在了中国国家战略性产业中。然而,国内旅游业的迅猛发展使得传统的人工导游方式不能满足新时代用户的多元化需求。长期以来,游客在景点旅游时只能走马观花,对景点的多媒体信息了解甚少,就本人经验来说,对于外来游客来说更会由于语言的障碍而使得游览质量下降于是,基于上述,手机终端的智能导游应用便应运而生。12课题内容本课题结合现代景区的相关特性和用户需求,使用JAVA语言,应用百度地图、百度定位(GPS基站)、JSON数据交换和无线通讯等技术,开发一个基于ANDROID的C/S式智能导航软件系统。这软件使得用户可以利用无线网络以及手机的便捷性无时无刻地享受到景点信息查询、自身位置查询、周边查询、导航等功能所带来的畅快旅游体验。13课题目的及其意义本课题的主要目的是将JAVAWEB后台服务端、百度地图、定位导航技术与景区导游相结合,从而实现景区导游系统的真正智能化。智能导游系统可以储存大量的景区景点信息,不仅可以广泛传播,而且科学环保、方便快捷。此外,系统还提供了自定位、导航的实用功能,让用户可以彻底抛弃纸质地图,减少路痴的认路障碍。这不仅能直接为游客带来更畅快的旅游体验,同时还完善了景区的旅游管理体制。2系统开发环境及相关技术21ANDROID开发介绍与环境搭建ANDROID是GOOGLE公司开发的基于LINUX内核的开源操作系统。它包括操作系统、用户界面和应用程序,而且不存在任何以往阻碍移动产业创新的专有权障碍2。ANDROID系统提供了四大基本组件,包括ACTIVITY、CONTENTPROVIDE、SERVICE、INTENTRECEIVER,每个组件都是一个视图(VIEW)。但上述四大组件对于一个ANDROID应用程序来说,却并不是必须的,可能只需要其中的几种酒可以满足设计需求。MANIFEXTXML配置文件时ANDROID应用程序不可或缺的一个XML配置文件,其中定义了程序所用到的组件、组件功能以及一些必要条件和权限。ANDROID的上层应用程序一般是由JAVA语言开发,所以首先应该有由SUN公司提供的JAVASDK其中包括JREJAVARUNTIMEENVIRONMENT以及JAVA主流集成开发环境ECLIPSEIDE。此外,还需要ANDROID开发专用GOOGLE提供的ANDROIDSDK和安装在ECLIPSE的插件ANDROIDADT,为ANDROID开发提供开发工具的升级或者变更,是ECLIPSE下开发工具的升级下载的工具3。ANDROID开发平台搭建步骤41首先到HTTP/WWWECLIPSEORG/DOWNLOADS/下载ECLIPSE集成开发环境并且解压,这里推荐下载JAVAEE集成版本,可以为平台的搭建省下不少工作。接着再去HTTP/JAVASUNCOM/JAVASE/DOWNLOADS/INDEXJSP站点下载SDK后安装,下载HTTP/DLGOOGLECOM/ANDROID/ANDROIDSDKWINDOWS15_R1ZIP,ANDROIDSDK15后解压。2双击ECLIPSE解压后目录中的ECLIPSEEXE然后启动,选择ECLIPSE菜单中的HELPINSTALLNEWSOFTWARE选项卡上的AVAILABLESOFTWARE,点击右侧的“ADD”输入HTTP/DLSSLGOOGLECOM/ANDROID/ECLIPSE/后确定,然后在“WORKWITH”下拉菜单中选择刚才输入的网址。过一会就会出现一个DEVELOPERTOOLS选项,勾上以后点击NEXT以后ECLIPSE会自动网上查找ANDROID开发工具插件,然后找到ANDROIDDDMS和ANDROIDDEVELOPMENTTOOLS,选中这两个点击FINISH,ECLIPSE就会自动下载并安装ANDROID插件了,最后会提示重启ECLIPSE。3重启后选择ECLIPSE菜单中的WINDOWSPREFERENCES在左侧的ANDROID项目中SDKLOCATION中填入ANDROIDSDK解压后的目录,然后点击APPLY。4在WINDOWS7的系统变量中的PATH变量中添加一个值,该值指向解压后的ANDROIDSDK目录下的TOOLS文件夹。22JSON简介JSON(JAVASCRIPTOBJECTNOTATION)是一种轻量级的数据交换格式,它基于JAVASCRIPT却采用了完全独立于语言的文本格式。JSON基于“名称/值”对的集合和值的有效序列表这两种格式,用JSON表示一组值时不但可以减少复杂性也能提高可读性,是网络编程中数据交换的常用格式。23STRUTS2框架简介与环境搭建STRUTS是采用JAVASERVLET/JAVASERVERPAGES技术,开发WEB应用程序的开放源码的FRAMEWORK。采用STRUTS能开发出基于MVCMODELVIEWCONTROLLER设计模式的应用构架。而STRUTS2是在原有STRUTS和WEBWORK的技术基础上进行合并的全新的框架,其体系结构而原有STRCTS差异巨大。STRUCTS2是以WEBWORK为核心,采用拦截器机制来处理用户请求,这样的设计也使得业务逻辑能够与SERVLETAPI完全分离,使应用结构更为合理。STRUTS2框架的开发需要使用MYECLIPSE集成开发环境。由于MYECLIPSE是ECLIPSE的一个插件,所以在这忽略ECLIPSE的安装。MYECLIPSE的安装首先应该到HTTP/WWWMYECLIPSEIDECOM/INDEXPHPNAMEDOWNLOADS在系统变量PATH的值中“JAVA_HOMEBIN“的后面加入以下内容CATALINA_HOMEBIN到这里,TOMCAT安装完毕6。STRUCTS2框架的搭建,包括以下步骤首先创建WEB项目并导入STRUCTS2所需要的包STRUTS2CORE2211JAR、XWORKCORE2211JAR、COMMONSFILEUPLOAD121JARCOMMONSIO132JAR、FREEMARKER2316JAR、OGNL30JAR、JAVASSIST37GAJAR;配置STRUCTS在当前WEB项目中,在WEBXML中配置STRUTS2所需的核心过滤器。24BAIDUMAPSAPI简介百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,包括JAVASCRIPTAPI、WEB服务API、ANDROIDSDK、IOSSDK、定位SDK、车联网API、LBS云等多种开发工具与服务,提供基本地图展现、搜索、定位、逆/地理编码、路线规划、LBS云存储与检索等功能,适用于PC端、移动端、服务器等多种设备,多操作系统下的地图应用开发7。3系统分析31研究目标1学习熟悉ANDROID应用程序的框架、开发过程;2学习熟悉STRUTS2框架、开发过程;3基于ANDROID的智能导游软件主要实现ANDROID系统访问服务端,利用基于JAVA的网络编程(APACHEHTTPCLIENT项目)与WEBSERVICE调用,针对手机所在的地理位置,实时查询相关景点的基本信息与天气信息,并智能导航;3学习熟悉基于ANDROID的地图GIS开发。32需求分析本软件是一个基于ANDROID的智能导游系统,故使用者应该为成分构成比较广泛的游客,所以UI必须简洁大方,有显浅易懂。而要实现智能导游,首先就必须要求软件起码如人工导游般,能够为用户提供景点的基本信息讲解、位置描述、导航等服务考虑到景区信息与用户信息等的数据量可能十分巨大,本系统应该使用本地/服务器模式以节省用户的移动设备储存空间以及数据流量。综上所述,本系统应该完成以下功能1采用C/S模式,基于STRUTS2框架服务端储存用户信息以及显示地图所必须的静态信息,供ANDROID客户端的查询浏览与下载;2用户信息管理,包括登录与注册、本地景点信息的管理;3以城市为基本的景点信息查询与模糊查询,包括名称、地址、图片、经纬度、票价及其优惠活动等,并提供景点信息的本地缓存、下载;4用户自定位,景点位置的地图显示与导航;5周边餐饮、卫生间、住宿、医院、加油站等信息的查询。33性能分析本项目的目标是提升游客的旅游体验,所以对程序的性能要求较高,程序应该具有以下的良好性能1响应速度快。2安全性高3信息处理速度快4系统设计41用户界面设计根据设计,本软件系统有以下几个界面登录界面、景点查询综合界面、景点信息显示界面、景点信息本地收藏界面、周边查询界面、景点导航界面。景点查询综合界面是软件的首页,其主体是百度地图。它能根据当前城市(自选或定位默认)或模糊查询用百度地图显示出景点的分布情况。景点信息显示界面为用户显示当前景点的详细情况,包括名称、地址、电话、门票、优惠、简介、图片等资料,并能根据用户意愿选择下载当前景点信息。景点信息本地收藏界面,其主体是一个LISTVIEW。它能够显示出用户的本地景点信息,并实现管理(删除)。周边查询界面,其主体是一个百度地图。用户可以通过它来查询到周边诸如餐饮、酒店、加油站等信息。景点导航界面,其主体是一个百度地图。它可以为用户进行实时导航服务。根据对用户界面显示内容的分析,绘制出用户界面的草图,如图41、42所示。首页城市景点信息景点简介搜索图41用户界面草图景点我的收藏目的地导航周边查询图42用户界面草图42数据库设计本软件中有一下数据需要存储用户信息、景点信息、景点信息收藏、全国城市名称。考虑到用户信息与景点信息的庞大数据量,本系统将其存储在服务器端的MYSQL数据库,需要时再请求;城市名称数据量较少,为减少用户数据流量,将其存储在手机的SQLITE数据库中;而景点信息收藏则存放于SD卡的文件中,综上所述,本系统数据库设计如下在服务端的MYSQL数据库中建立新数据库MAPS_TRAVERSE,并建立新表,包括用户信息表GPSUSER和景点信息表SPOT。如表41和表42所示。表41用户信息表GPSUSER的结构属性数据类型说明IDINT11自动增加的主键USERNAMEVARCHAR50用户名PASSWORDVARCHAR50密码EMAILVARCHAR50电子邮箱地址REGISTERTIMEVARCHAR50注册时间POWERLIMITSVARCHAR50权限STATEVARCHAR50用户登录状态表42景点信息表SPOT的结构属性数据类型说明IDINT11自动增加的主键NAMEVARCHAR45景点名称ADDRESSVARCHAR45地址PHONEVARCHAR45咨询电话IMAGEURLVARCHAR45图片路径INTRODUCTIONTEXT简介LATDOUBLE经度LNGDOUBLE纬度FARESFLOAT门票价CITYVARCHAR45所在城市编号BTIMETIME始开放时间NTIMETIME终开放时间FAVOURABLEINFOVARCHAR45优惠信息由于全国城市的分布是相对固定的,为了减少操作的麻烦,本软件直接将整个城市数据库CITYS3DB导入到ANDROID项目的RES/RAW目录中,直接使用。其中包括省表PROVINCE,城市表CITY。如表43和表44所示。表43省表PROVINCE的结构属性数据类型说明_IDINTEGER自动增加的主键CODEVARCHAR6省编号NAMEVARCHAR60省名表42城市表CITY的结构属性数据类型说明_IDINTEGER自动增加的主键CODEVARCHAR6城市编号NAMEVARCHAR60城市名PCODEVARCHAR6城市所在省编号从设计思路上考虑,储存在手机本地的景点信息收藏数据包括JSON文本和JPG格式的图片,将其直接写入SD卡目录以指定规则命名的目录,此方案可以简化对其的读写操作。43程序模块设计从功能需求上分析,整个软件应划分为首页、个人资料、导航、周边查询,四个模块。首页负责景点信息的各类查询、城市的切换、定位,是整个软件的核心;个人资料模块负责管理用户的信息以及本地景点数据;导航负责对用户进行景点、指定位置的目的地导航;周边查询负责为用户提供周边信息的查询。系统模块功能图如图42。图42系统模块功能图5系统功能模块设计51文件结构与用途在程序开发阶段,首先确定“基于ANDROID的智能导游系统”的工程名为GUIDEMAP。工程源代码的结构如图51所示。为了使源代码文件的结构更加清晰,GUIDEMAP工程设置了多个命名空间,分别用来保存用户界面、数据库、后台服务和工具实体的源代码文件,源代码文件的名称以及说明如表51所示。智能导航系统首页我的资料导航周边景点标示查询下载位置显示、当前城市收藏景点查询收藏景点管理景点导航指定地点导航个人资料管理登录图51GUIDEMAP工程的源代码文件表51GUIDEMAP工程的文件用途说明包名称文件名说明COMGUIDEMAPADAPTERMYADAPTERJAVA资源适配器COMGUIDEMAPCOMMONCONSTANTSJAVA公共工具类COMGUIDEMAPCONTROLIMAGELOADERJAVA远程图片加载类COMGUIDEMAPCONTROLMAPAPPLICATIONJAVAAPPLICATIONCOMGUIDEMAPCONTROLMYOVERLAYJAVA景点覆盖层类COMGUIDEMAPCONTROLOVERITEMTJAVA定位覆盖层类COMGUIDEMAPCOMMONURLERJAVAURL公共类COMGUIDEMAPDBDAOJAVA城市信息数据库操作COMGUIDEMAPDBDBMANAGERJAVASQLITE管理类COMGUIDEMAPENTITYMYLISTITEMJAVA地图ITEM实体类COMGUIDEMAPENTITYPOSITIONJAVA景点位置实体类COMGUIDEMAPENTITYSPOTJAVA景点信息实体类COMGUIDEMAPENTITYUSERJAVA用户信息实体类COMGUIDEMAPSERVICEGETLOCATIONSERVICEJAVA后台定位SERVICE类COMGUIDEMAPVIEWCITYACTIVITYJAVA城市切换选择COMGUIDEMAPVIEWGUIDEACTIVITYJAVA导航COMGUIDEMAPVIEWMAINACTIVITYJAVA主框架COMGUIDEMAPVIEWMAPSACTIVITYJAVA首页COMGUIDEMAPVIEWSEARCHACTIVITYJAVA周边查询COMGUIDEMAPVIEWSPOTACTIVITYJAVA景点信息查询ANDROID的资源文件保存在/RES的子目录中。/RES/DRAWABLE/目录中保存的是图像文件,/RES/VALUES目录中保存的是用来自定义字符串和选项列表的文件;/RES/LAYOUT目录中保存的是布局XML文件;/RES/RAW保存的是城市信息数据库文件;而/RES/ANIM保存的是动画效果文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中ANDROIDMANIFESTXML文件主要是ACTIVITY、SERVICE类的注册和相关权限的许可设置。52后台定位服务GETLOCATIONSERVICEJAVA类的后台定位服务是整个软件的基础,它绑定在软件的APPLICATION,从软件运行开始,贯穿整个软件生命周期的始末。其主要功能是不断为系统提供实时的所在经纬度以及所在城市,并存放到公共类CONSTANTS的CITY变量。考虑到本应用的用户对象主要为国内用户,在地图方案上采用了由百度公司开发的免费地图BAIDUMAPSAPI。而定位方案采用了BAIDULOCATIONAPI,通过调用此API来实时获取当前位置坐标将其存入BINDER类中,而当前城市信息的获取通过百度地图SDK中MKSEARCH来获取。此模块的实现流程图如图52所示。其核心代码如下。MAPAPPLICATIONAPPMAPAPPLICATIONTHISGETAPPLICATIONIFAPPBMAPNULLAPPBMAPNEWBMAPMANAGERGETAPPLICATIONAPPBMAPINITAPPMAP_KEY,NEWMAPAPPLICATIONMYGENERALLISTENER开始初始化百度地图API监听位置变化,并实时获取当前坐标根据坐标查询、获取当前地址信息将获取的信息存入MAPAPPLICATION结束图52后台定位服务模块功能流程图APPBMAPSTARTFINALMKSEARCHMMKSEARCHNEWMKSEARCHMMKSEARCHINITAPPBMAP,NEWGEOCODERPARSERLOGD“SERVICEMAP“,“STARTED“MLOCATIONLISTENERNEWLOCATIONLISTENEROVERRIDEPUBLICVOIDONLOCATIONCHANGEDLOCATIONLOCATION/LOGDTAG,“LOCATIONCHANGE“IFLOCATIONNULLSTRINGSTRLOGSTRINGFORMAT“经度FRN“纬度F“,LOCATIONGETLONGITUDE,LOCATIONGETLATITUDEPTNEWGEOPOINTINTLOCATIONGETLATITUDE1E6,INTLOCATIONGETLONGITUDE1E6MMKSEARCHREVERSEGEOCODEPTAPPSETPTPTELSELOGV“SERVICE“,“GETLOCATIONERROR“MKSEARCH的查询结果在GEOCODERPARSEONGETRESULT方法中给出。PUBLICVOIDONGETADDRRESULTMKADDRINFOARG0,INTARG1IFARG10STRINGSTRSTRINGFORMAT“D“,ARG1LOGDTAG,STRRETURNMKGEOCODERADDRESSCOMPONENTADDRESSARG0ADDRESSCOMPONENTSCONSTANTSCITYADDRESSCITYLOGDTAG,“LOCATIONINFO“ADDRESSPROVINCEADDRESSCITYADDRESSDISTRICTADDRESSSTREETADDRESSSTREETNUMBER53MAPAPPLICATIONJAVA类该类是整个软件的基石,它绑定了后台定位服务,初始化了百度地图SDK,诸如BMAPMANAGER、MKSEARCH、MKSEARCHLISTENER等公共类,避免了各ACTIVITY之间的冲突与提高了系统的流畅性,它还定义了软件的公共变量。综上,系统可以通过它来控制着整个软件的行为。其核心代码如下。首先,应该在ANDROIDMANIFESTXML文件中声明。绑定后台服务以及初始化百度地图。MAPAPPLICATIONMAPPTHISBMAPNEWBMAPMANAGERMAPPBOOLEANISBMAPINITMAP_KEY,NEWMYGENERALLISTENERIFIS/设置定位监听时间间隔BMAPGETLOCATIONMANAGERSETNOTIFYINTERNAL5,2BMAPGETLOCATIONMANAGERENABLEPROVIDERMKLOCATIONMANAGERMK_NETWORK_PROVIDERBMAPGETLOCATIONMANAGERENABLEPROVIDERMKLOCATIONMANAGERMK_GPS_PROVIDERELSETOASTMAKETEXTTHIS,“地图DSK启动失败“,TOASTLENGTH_LONGSHOWFINALINTENTINTENTNEWINTENTINTENTSETACTION“COMGUIDEMAPSS“BINDSERVICEINTENT,SCON,SERVICEBIND_AUTO_CREATE其中,MYGENERALLISTENER类的作用在于在初始化百度地图SDK时检测错误的发生,并为用户提供提醒服务。用于为用户提供导航、周边信息搜索的MKSEARCH关键代码如下(由于篇幅问题,此处只写出了代码框架,具体流程在导航、周边信息查询模块处给出)。MKSEARCHMKSEARCHNEWMKSEARCHMKSEARCHINITAPPBMAP,NEWMKSEARCHLISTENEROVERRIDEPUBLICVOIDONGETWALKINGROUTERESULTMKWALKINGROUTERESULTARG0,INTARG1OVERRIDEPUBLICVOIDONGETTRANSITROUTERESULTMKTRANSITROUTERESULTARG0,INTARG1OVERRIDEPUBLICVOIDONGETSUGGESTIONRESULTMKSUGGESTIONRESULTARG0,INTARG1OVERRIDEPUBLICVOIDONGETRGCSHAREURLRESULTSTRINGARG0,INTARG1OVERRIDEPUBLICVOIDONGETPOIRESULTMKPOIRESULTARG0,INTARG1,INTARG2OVERRIDEPUBLICVOIDONGETPOIDETAILSEARCHRESULTINTARG0,INTARG1OVERRIDEPUBLICVOIDONGETDRIVINGROUTERESULTMKDRIVINGROUTERESULTARG0,INTARG1OVERRIDEPUBLICVOIDONGETBUSDETAILRESULTMKBUSLINERESULTARG0,INTARG1OVERRIDEPUBLICVOIDONGETADDRRESULTMKADDRINFOARG0,INTARG154登录模块登录模块是整个系统的门户,在现实中它的功能是否健全关系到整个系统给用户的第一印象。在这个系统中,登录模块主要为用户提供账号登录与注册,记住最后一次账号与密码,对系统进行GPS、WIFI等状态的检测,以及系统权限等功能。其界面图如图53所示。图53登录界面图当用户打开系统,首先便进入这个登录界面。假如用户上一次成功登录并勾选记住密码,则系统会自动为用户填上上一次登录所用账号密码。与此同时,该模块后台会自动检测当前手机的GPS、WIFI网络状态,因为系统所实现的功能是基于上述两种功能的,假如检测到上述状态为关闭时会提示打开。当用户输入正确账号信息时,系统便会跳转至系统主界面。在注册功能中,用户可以填写账号、密码、EMAIL等信息,注册成功的条件是输入的账号不重复,各类输入格式正确。其中,登录的功能流程图如图54所示。图54登录功能流程图55首页模块由上述可知,首页模块是软件功能的核心,正是它奠定了软件的属性智能导游。它由两个核心界面构成主界面、景点信息界面。其对应的界面图如图55所示。开始服务端检测账号数据并将结果反馈至系统登录,向服务端发送账号信息读取上一次记录并填上对应的框存在上一次账号记录登录失败用户输入账号密码的信息登录成功账号密码正确结束NNYY图55首页界面图首先,用户一旦登录成功后,系统就会根据定位信息向服务端的MYSQL数据库请求当地的景点数据,并将其显示在地图上。此后,用户可以根据需要,使用以下功能(1)、模糊搜索,在输入框中输入用户需要了解的景点名称,系统就会将其单独显示出来然后将其置于地图中心;(2)、切换城市,系统默认城市是用户当前所在城市,如果需要,用户可以实时切换城市以了解更多景点;(3)、查询、下载景点详细信息。其模块功能流程图如图56所示。为了更好地处理想WEB站点请求,包括处理SESSION、COOKIE等细节问题,APACHE开源组织提供了一个HTTPCLIENT项目,作为一个简单的HTTP客户端(而不是浏览器)。它可以用于发送HTTP请求,接受HTTP响应8。由于本系统需要从服务端远程获取景点信息,我采用这个APACHEHTTPCLIENT,数据格式采用JSON,从服务端获取信息的核心方法如下。PUBLICSTATICSTRINGDOGETSTRINGURL,CONTEXTCONTEXT/判断网络IFCHECKNETWORKCONTEXTFALSERETURNNULLELSEHTTPGETHTTPGETNEWHTTPGETURLBASICHTTPPARAMSHTTPPARAMSNEWBASICHTTPPARAMSHTTPCONNECTIONPARAMSSETCONNECTIONTIMEOUTHTTPPARAMS,5000开始初始化百度地图N标注景点向后台定位服务请求实时位置信息位置为空Y获取上一次定位的信息根据位置信息向服务端请求景点数据结束图56景点信息标注功能流程图HTTPCONNECTIONPARAMSSETSOTIMEOUTHTTPPARAMS,5000HTTPCLIENTHTTPCLIENDNEWDEFAULTHTTPCLIENTHTTPPARAMSSTRINGRESULTNEWSTRINGTRYHTTPRESPONSEHTTPRESPONSEHTTPCLIENDEXECUTEHTTPGETHTTPENTITYHTTPENTITYHTTPRESPONSEGETENTITYINPUTSTREAMINPUTSTREAMHTTPENTITYGETCONTENTBUFFEREDREADERBUFFNEWBUFFEREDREADERNEWINPUTSTREAMREADERINPUTSTREAMSTRINGLINENEWSTRINGWHILELINEBUFFREADLINENULLRESULTRESULTLINE/SYSTEMOUTPRINTLNRESULTCATCHEXCEPTIONE/TODOAUTOGENERATEDCATCHBLOCKEPRINTSTACKTRACERESULTNULLRETURNRESULT根据信息将景点标注PUBLICOVERITEMTDRAWABLEMARKER,MAPSACTIVITYCONTEXT,ARRAYLISTSLISTSUPERBOUNDCENTERBOTTOMMARKER/TODOAUTOGENERATEDCONSTRUCTORSTUBTHISMARKERMARKERTHISSLISTSLISTTHISMACONTEXT/根据GPLIST来制作OVERLAYITEMLISTLGPNEWARRAYLISTOVERLAYITEMOTFORSPOTSPOTSLISTLOGE“GETLAYER“,STRINGVALUEOFSPOTGETPOIGETLAT“STRINGVALUEOFSPOTGETPOIGETLNGLGPADDNEWGEOPOINTINTSPOTGETPOIGETLAT1E6,INTSPOTGETPOIGETLNG1E6FORINTI0ILGPSIZEIGEOPOINTGPGEOPOINTLGPGETIIF“NULL“EQUALSSLISTGETIGETFAVOURABLEINFOOTNEWOVERLAYITEMGP,SLISTGETIGETNAME“(优惠景点)“,“GPOINT“IELSEOTNEWOVERLAYITEMGP,SLISTGETIGETNAME,“GPOINT“IIFI0SETFIRSTSPOTGPMGEOLISTADDOTPOPULATE/更新56导航模块导航模块,顾名思义,它的设计目标是为游客提供景点的导航服务,它弥补了人工导游难以随时为旅游指路的缺点,丰富了导游的服务,让游客可以更加方便地在旅游区浏览。导航模块界面如图57所示。图57导航模块界面图此模块设计了两种功能任意地点的导航和指定景点的导航。而每种导航功能可以为旅游查询出三种路径公交车、自驾、步行。在导航方案的选择上,本模块采用了基于BAIDUMAPSAPI的MKSEARCH与MKSEARCHLISTENER。当用户将搜索条件输入系统时,系统即调用MKSEARCH中的TRANSITSEARCHSTRINGCITY,MKPLANNODESTART,MKPLANNODEEND或WALKINGSEARCHSTRINGSTARTCITY,MKPLANNODESTART,STRINGENDCITY,MKPLANNODEEND发起搜索,得到信息后为用户在地图显示出路径。导航模块功能流程图如图58所示。图58导航模块功能流程图57周边信息查询模块周边信息查询模块为用户提供了对某城市一定范围内的诸如餐饮、卫生间、加油站、酒店等丰富信息等关键词的查询。周边信息查询模块界面如图59所示。根据设计,用户可以指定搜索中心点(定位或自定义)、范围、搜索的POINT类型,例如肇庆学院图书馆、范围1000M、类型酒店,系统即可为用户查询到在肇庆学院图书馆周边1000M范围内的酒店。如导航模块一般,采用了基于BAIDUMAPSAPI的MKSEARCH与MKSEARCHLISTENER。当用户将搜索条件输入系统时,系统即调用MKSEARCH中的开始初始化百度地图API实时从MAPAPPLICATION中获取位置信息获取用户输入的搜索条件调用MKSEARCH查询路径信息,并返回至MKSEARCHLISTENER结束从MKSEARCHLISTENER获取路径信息,地图显示POISEARCHNEARBYSTRINGKEY,GEOPOINTPTLB,INTRADIUS,方法发起周边POINT搜索。图59周边信息查询模块界面图周边信息查询模块功能流程图如图510所示。开始初始化百度地图API实时从MAPAPPLICATION中获取位置信息调用MKSEARCH搜索周边POINT信息,并返回至MKSEARCHLISTENER结束从MKSEARCHLISTENER获取周边POINT信息,地图显示获取用户输入的搜索条件图510周边信息查询模块功能流程图58个人资料模块个人资料管理模块为用户提供了个人信息查询更新、个人景点收藏的查询与管理功能,其主要布局界面有两个,如图511所示。图511个人资料模块界面图当用户选中“我的”选项卡后,进入此模块主界面。用户可以在此模块查看的个人账号信息,包括账号、邮箱、注册时间、账号权限,并可以根据需要进行包括账号名、邮箱、密码在内的信息修改,而在我的收藏方面,界面以LISTVIEW方式罗列了用户收藏在本地的景点信息,可以让用户得以查看自己收藏到本地的景点信息,同时也可以通过特定手势对其进行删除操作。模块主界面的个人资料信息刷新、信息获取与更新等由一个后台核心线程进行维护。个人资料管理线程功能流程图如图512所示。在个人收藏功能方面,景点信息在首页模块中下载,以JSON格式的TXT文件方式储存在手机SD卡中以项目名命名目录下,文件夹则以景点的ID命名。在查看时,该模块会根据景点ID搜索到指定目录的TXT文件,并加以解析,然后以LISVIEW方式将其可视化。此时,用户则可以根据需要,按照指定手势对信息进行查询、删除。例如,在LISTVIEW的ITEM中滑动手势,将每个ITEM的删除按钮可视化,按下即可实现对信息的删除。个人收藏功能流程图如图513所示。开始从后台定位服务获取地址信息需要用户信息向服务端MYSQL数据库请求用户信息数据Y需要更新用户信息Y更新服务端MYSQL数据库指定用户信息刷新UINN结束图512个人资料管理线程流程图图513景点收藏功能流程图6系统测试至此,已经完成了GUIDEMAP工程的代码编写工作,这一节将对代码进行软件测试。考虑到ANDROID虚拟机效率比较低,所以本系统的测试操作将使用真机测试,并用豌豆荚手机截图功能将结果截图,测试机型为魅族MX。在测试开始遍历读取储存有景点信息字符串获取存放信息路径的文件个数解析字符串,得到一个景点信息文件个数为0读取的景点个数等于文件个数NYNY显示读取的景点信息结束方式上我主要进行了系统的黑盒测试,其过程与结果如下1在工程名GUIDEMAP上点右键,然后选择“RUNAS”,然后选择“ANDROIDAPPLICATION”。首先进入登录界面,此时GPS、WIF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船舶行业竞争格局考核试卷
- 肉类产品加工过程中的食品安全检测技术考核试卷
- 生态保护工程生态保护宣传教育考核试卷
- 葡萄酒酿造过程中的产区特色产品开发与品牌推广考核试卷
- 轮胎行业市场细分与竞争策略考核试卷
- 通信设备在高铁通信系统的稳定性考核试卷
- 茶馆客户体验设计与反馈机制考核试卷
- 赋能创新生态引领企业可持续发展考核试卷
- 初中物理回声测距离
- 抖音平台短视频内容制作技术保密及推广合作协议
- WS/T 402-2012临床实验室检验项目参考区间的制定
- GB/T 7713-1987科学技术报告、学位论文和学术论文的编写格式
- GB/T 254-2010半精炼石蜡
- GB/T 20160-2006旋转电机绝缘电阻测试
- 高频变压器设计-5v2a规格书
- 2023年保山数字产业发展有限责任公司招聘笔试模拟试题及答案解析
- 《结构化学》课程教学大纲
- 建设工程消防设计审核验收要点课件
- DAM-10KW全固态中波发射机“欠激励”故障分析详述
- 欧盟新法规MDR培训
- 甲状腺及颈根部1
评论
0/150
提交评论