您的位置 首页 五金品牌

智能导游系统

智能导游系统

  0 引言

≤本文引用地¤址:http://w?ww.eepw.com.cn£/ar?ticle/270834.htm

  随¥着全面建设小康社?会的推进和?人民生活水平的不断提<高,旅游业成为一项极富发展潜力的产业。然而我国旅游业现阶段信息化水平低,旅游产品开发水平低,导游对?旅游团游客的?管理还停留在依靠团旗和喊话?器来带领旅游团员,景点旅游团交叉重叠,环境嘈杂。在智能嵌入式系统得到广泛应用的背景下,开发具有?良好用户体验、方?便文件管理并且支持各?种多媒体功?能和网络应用的智能导游系m统成为现实,并且国外出现了与人工智能技?术结?合,基于地理位置自动播放多媒体的导游?系统。∽

  现有的智能导㎝游系统平台多?种多样,主要有WinCE 和Linux.WinCE 的使用需要微?软公司授权,实现成≥本很高; Android 系统本身是开源项目,源代码可以免费获取,比起WinCE,选用Android 平台来实现智能♀导游系统?可以大大降低系统成本。另外Android操作系统㏕基于Linux2. 6 内核,具备高稳?定性和良好的移?%植性。应用程序开?发语言为Jav?a,具备良好的可扩展性=,便于软件升级和维护,加之系统本身?提供了非常丰富的?UI 组件,故可以设计出交互性好的系统应用。此外,Google 公司提供了Google API 来支持Android系统℡运行如Google maps 等应用,极大地方便了应用程序开发。

  本研究提出一种 ?基于Android? 平台的智能导游系统。

  1 Android 操作系统简介

  And-roid 操作系统在2007 年由Google 公司发布,是一款专门面向移动平台的智能?*操作系统。Android系统软件层次结构包括操作系统、中间件、用户界面和应用程序,其层⌒次结构框图如图1 所示。

  

  图1 Android 软件层次结构

  最底层为Linux2. 6 内核,Android 系统依赖其提供核心服务,如: 进程管理、内存管理、网络协议栈√实现、硬件驱动和安全服务等。◎

  库和运mol行环境包含一些C /C + + 库,这些库能被Android 系统中不℃同的组件使用。核心库有+m: 系统C库?、媒体库、图形库( ℅SGL,3D Libraries ) 、数据库( SQLite) .核心库都针对嵌入式应用进行了优化。

  应用层框架提供了各种视图组件、内容提供器、资源管∣理器、活动管理器等一系列∝的系统服务,方便开发交互性好的应用程序。

 ′ 2 智能导游∷系统平台框架设计

  该系统硬件平台选用ARM 平台,CPU 选用三星公司的S3″C6410A.S3C6410A 为ARM11 内核,具备智能能量管理器,?功耗低?并且采用ARM Jazelle( R) 技术用以有效支?持嵌入式Java 执行。此外,S3C6410A主频为533 MHz,可?以流畅地运行Androi?d 系统。

  液晶触摸显示屏采用NEC 公司的4. 3″的触摸液晶屏,分辨率为480 × 272,完全满足导游系⊕统要求。

  系统移植的And°roid 内核版本为Android2. 1.

  

  图2 智能导游系统平台框架设计。

  智能导游系统通过Wif〒i 方式接入互联网,通?过Go¢ogle maps 提供的数据实现电子地图的功能。Wif∠i模块采用Marvell 8686,通过SDIO 接口‰与S3C6410 连接使用。

  3 智能导游系统应用功能模?块?设计

  智能导游系统的应用程㏒序通过A∏ndr∴oid 2. 1 SDK来开发,数据存储采用嵌入式数据?库SQLite.智能导游系统具有游客信息管理、多媒体应??用、电子地图功能。智能导游系№统功能模块框架设计如图3 所示。

  

  图3 智能导游系统应用功能模块设计

  3. 1 游客信息管理模块

  游客÷信息管理模块负责对团队游客的信息进行管理,支持数据存储、查询、修改等功能,以随时记录游客⊿信息,方便对旅游团队进行管理。

  Android 系统中可供选择的存储方式有如下几种:㈱

  SharedPrefe?rences、@文件存储、SQLi?te 数据库存储、内容提供?器( CONtent provider) 和网络存储。在该系统中,游客信息数据存储采用3SQLite 数据库进行存储。

  SQLite 是Android 系统所带的一个轻量级嵌入式数据×库,支¥持SQL 语句,实现了事务的原子性、一致性、独立性及持久性( ACID) ,最大支持2 TB 的数据存储。

  SQLite 存储数据实现方式: 首先?实例化一个SQLiteDatabase 类,即得到一个SQLite 数据库。SQLite数据库对象有3 个方法: ①onCreat( ) : 在数据库第一次∞生成的时﹤候,系统调用这个方法用来生成数据库表;

  ②onUpgrad℉e( ) : 当数据库更新?的时候,系统会调用这个方法将数据库?从旧版£本跟新到新版本;③onOpen( ) : 打开数据库时的回调函数。通过在on∮Open( ) 方法中≦调用数据库实例的execSQL( ) 方法,就可以在打开该数据库的时候执行一条SQL 语句,从而完成相应数据库操作功能。

  游客信息?数据库字段定义如表1 所示。

 ¬ 在数据库中对?游客信息进行增加、修改、删除等操作的设计方?案,﹢通过采用事件监听模型来完成,从而使应用程序具有良好的交互性。笔者以查找功⊙能的实现为例,来阐述智能导游系统对游?客信息管?理的查找事件处理的流程。

  

  ?表1 游客∷信息数据库字段

  查找事件处理过程的事件源为查找按钮findBut-ton?.首先程序将监听器clickLiSTener 通过setOnClic≌k-Liste?ner( ) 方法注册到findButton.当外部动作触摸到findButto*n 的时候,系?统产生click 事件,并将其传μ入到事件监听器clickListene$r.事件监听器调用事件处理器做出?相应动作,即在onClick 方法中调用系统函数startActivity,启动一个intent( 意图) ,从㎏而实现界面的跳转,再∫通过调用数据库的execSQL( ?) 方法来实现数据库查找操作1功能。

  3‖. 2 多媒体应用模块

 ∵ 多媒?体应用模块主要完成3 个功能: 景点音频解说、≒景点图片预览、景点﹢视频播放。利用解说音频的播放可以有效降低导游的工作?强度,而且通过景点图片和视频的预览,可?以补充展现景点珍?贵的≧历史图片和特定时间段的景色,从而更加展?现出景点的魅力3。

%

  3. 2. 1 多媒体应用模块的主界面设计

  本研究以景点为"西湖十景"为例,多媒体功能主界面如图5 所示。

  

  图5 多媒体应用主界面。

  多媒体应用模块的主界面采用组件ListVi?ew,以列表方式来展现。当开发人员进入多??媒体应用模块?的主界面后,在该界面的onCreate( 智能导游系统 ) 方法中,∑使§用newL※istView( ) ?语句新建一个ListView,通过setAdapter( )方法将其与数组适配器Array?Adapter♂ 进行绑定,从而㏑在ListView 界面对数据进行显示。数组适配器Array·-Adapter 将数组里定义的数据一?一对应地显﹣示在List-≮View 组件㎞。

  本研究在多媒体应用主界面需要实现在不同的选项选择,并进入相应的界面功能。通过创建并绑定一≈个选项选择监听器: itemSelectedList?ener?,±≯并通过setOnItemClickListener() 方法来将其绑定到Lisview.当选中相应的?景点时,就可以进入对应的功能界面。

  3. 2. 2 多媒体功能的实?现

?

  Andriod 系统提供了常见的媒体编码、解码机制,如MP3,? JPG,MPEG4,h. 264 等编码格式,因此可∪以∩非常容易地集成音频、视频和图片等多媒体到应用程序中。播放音频功能的实现?需要实例化一个MediaPlayer类,然后调用se?tDataSource( ) 方法来设置音频文件的路径,再调用start( ) 实现音频的播放。视频播放的实现方法?类似?于音频播放,借助Vid?eoView? 和Media-Controlle?r 组件即可㏄以实现。图片预览的实?现采用网格视图GridView,本研究通过调用网格视图的set?Adapt?er方=法将待预览的图片的引用和该视图对象进行绑定,可以将很多图片以一定的大小同时显示出来,适合图片预览的应用。

  3?. 3 电子地图功能模块

  该系统?的电∧子地图功能借助Google maps 的API来进行编程实现。经过申请Google maps 的API key之后,本研究使用An?droid ∟系统提供的map 包( com.google. android. maps) ,从而在显示界面?完成显示电子地图及其他应用的功㎎能。

  电子地图功能模块的框图设计如图6 所示:

  

  图6 电子地图功?能框图设计

  视图模式功能模?块根据选择来分别显示卫星图、街景图、交通图,并对地图进行放大和缩小操作。视图功能的实现通过采用MapView 类来实现。MapV?iew类是一个展示地图的视图,它可?以获取键盘事件( on-KeyDown 和onKeyUp) 来支持地图移动和缩放功能。

  本研究?通过使用mapView. toggleSatellite ( ) 和map-View. t?oggletraffic( ) 的两个方法可以分别选择显示卫星图或∨者路况图。电子地图的设置⊥大小的﹥功能通过MapControl×ler 的setZoom( ) 方法来实现。

  地点?查找功能通过输入目的地名称?,调用get-Fr?omLocationName( ) 方法/来返回?查询结果并在地图上显示,可以方便找到目的地的位置。目的地经、纬度借助LocationManager 的getLastKnownLoca≡tion 方法来得到: 通过getLastKnownmlL﹣ocation 方法得到一个新的Location对象,那么该点的经度?和纬度分别由该类的get?-La㎡titoude( ) 和getLongitude( ?) 方法来得到。

?

  除此之外,景点周围信息查询功能模?∥块通过预先存储的内容,为游客提供周围的交通和食宿?信息。㎜>

  4 结束?语

  Android 平台因其优异的性能和开放性,日益在智能手机、平板电脑、车载导航仪、数字电视等嵌入式终端系统获2得广泛应用。本研究提出了一种基于An?droid平台的智能导游系统的设计和实现方∶案,分析了各个功能模块的设计和实现≠方法,测试结果表?明,该系统运行稳定,操作?简?单,能提供∈丰富的多媒体应用并具有良好的人机交互界面,在旅游业中有广泛的应用前景。另外,该系统还可以结合地理位置信息,实现自动选择相应的多媒体应用的文件,该功能有待进一步研究和实现。

关于更多智能导游系统内容,可以收藏本网页。助赢 基于Android平台的智能导游系统的设计与实现

智能导游系统智能导游系统

关于作者: houswang

热门文章