【Android源码 栏目提醒】:网学会员鉴于大家对Android源码 十分关注,论文会员在此为大家搜集整理了“基于Android平台的车辆导航系统设计与实现 - 期刊论文”一文,供大家参考学习
专题研究 文章编号:1001-9944201204-0001-04 基于
Android 平台的车辆导航系统设计与实现 刘胜前,陈立定 (华南理工大学 自动化科学与工程学院,广州 510640 ) 摘 要 :该文 利 用 当 今 流 行 的
Android 平 台 和 GPS 特 性 ,结 合 Google Map ,设 计 并 实 现 了 一 个 基于
Android 平台的车载定位导航终端软件系统, 并对整个软件系统的五个主要功能模块 进行了详细的分析与研究。
该系统经过严格测试,运行稳定可靠,自我定位精确,浏览地图 流畅,地址搜索快速,路径跟踪直观,车辆跟踪准确,基本能够满足用户的车辆定位 导 航 服 务需求,并且具有广阔的推广应用前景。
关键词:
Android 平台;GPS 定位;Google Map ;定位导航 中图分类号:TP368 文献标志码:A Design and Implementation of Vehicle ’s Navigation System Based on the
Android LIU Sheng-qian,CHEN Li-ding (College of Automation Science and Engineering ,South China University of Technology ,Guangzhou 510640 ,China) Abstract :This paper using the property of
Android platform and GPS ,which are prevalent nowadays ,combined with Google Map ,designs and accomplishes a software system for vehicle ’s navigation system based on the
Android ;and makes a particular analysis and research on the five primary functional modules of the whole software system. The system has passed the strict performance test ,running regularly ,self-located precisely ,browsing map smoothly ,search- ing location rapidly ,shadowing route directly ,following the vehicles accurately ,it can meet the needs of users who re- quire the services of vehicle ’s location navigation,this system may as a result has a wide application perspective. Key words :
Android platform ;GPS;Google Map ;location navigation 随着社会经济的发展, 汽车已进入千家万户, 展性和可移植性好。
本文基于
Android 移动平台,利汽车在人们生活中的作用越来越重要。
但是汽车的 用内置 GPS 功能模块,结合 Google Maps API ,设计普 及 也 带 来 诸 多 社 会 问 题 ,如 城 市 道 路 拥 堵 、交 通 和实现了一个车载定位服务软件系统,能使用户快事故频发等。
同时,市场对汽车的舒适性、智能性和 速准确地获取移动实时定位导航服务,并具备成本安全性要求越来越高。
快速准确的定位导航服务能 低、功耗小的优点,具有一定的市场推广价值。
够帮助驾驶员更加安全、快捷地到达目的地。
当前车载导航系统多使用嵌入式操作系统,如 1
Android 平台,GPS 介绍Windowsce 和嵌入式 Linux 等。
根据车辆使用的频 1.1
Android 平台介绍繁 性 及 道 路 的 复 杂 性 要 求 ,它 必 须 可 靠 性 高 ,且 扩
Android 是 Google 于 2007 年宣布以 Linux 为基 收稿日期:2011-11-24 ;修订日期:2011-12-19 作者简介:刘胜前(1984 —),男,硕士研究生,研究方向为网络化控制;陈立定(1964 —),男,博士,副教授,硕士生导师,研究 方向为网络化控制系统理论与应用、现场总线及其应用和智能化集成系统。
自动化与仪表 20124 1 专题研究础 的 开 放 源 码 操 作 系 统 ,该 平 台 由 操 作 系 统 、中 间 实现与外界信息互联互通,有语音提示实现路径引件、用户界面和应用软件组成。
Android 操作系统最 导,另有手写触摸屏输入和液晶显示屏输出。
通过初由 Andy Rubin 开发, 主要支持手机。
2005 年由 Google Map 电 子 地 图 并 配 合
Android 系 统 软 件 的Google 收购注资, 并拉拢多家制造商组成开放手机 API 接口,具有不断升级的地图库,并能按照用户需联盟开发改良, 逐渐扩展到平板电脑及其他领域。
求进行各种信息查询,是一个体积小、能耗少、成本Google 重新设计了 Java 虚拟机和系统, 使
Android 低、人机界面友好的嵌入式操作系统平台。
的 Java 应用更接近于底层系统,效率更高;另 外 使用虚拟机技术使
Android 的应用在被监控情况下运 3 系统软件设计行,安全性更高。
它是一个对第三方软件完全开放 本车载定位导航应用软件总体功能框图如图 2的平台,代码完全开源免费。
Android 的应用程序是 所示。
系统主要有五大功能模块:车辆自我定位、浏用 Java 语言开发的, 其编程语言完全开源免费,基 览地图、地址查询、路径跟踪、车辆跟踪。
应用程序于此平台,对此系统进行开发设计 1。
首次启用成功后,程序会将当前使用者的位置实时1.2 GPS 介绍 标注在地图界面上,实现车辆当前位置的标定,在车 GPS 是 20 世纪 70 年代由美国国防部研制的新 辆移动的过程中,位置标注界面会定时进行刷新当一代全球卫星导航定位系统。
GPS 的基本原理是测 前位置,显示当前车辆的位置,其他功能模块可设成出已知位置的卫星到用户接收机间的距离,然后综 菜单形式,用户选择相应的菜单实现浏览地图、地址合多颗卫星的数据, 经计算求出接收机的三维位 查询、路径跟踪、车辆跟踪等功能。
在浏览地图的过置、三维方向及运动速度和时间信息。
GPS 具有高精 程中,还可实现对地图大小的任意缩放。
度、全天候、高效率、多功能、操作简便、应用广泛等 基于
Android 平台特点,民用单机定位精度可达 10m 。
当前 GPS 已广 GPS 的车辆定位导航系统泛应用于汽车自主导航、地面车辆跟踪和城市智能交通管理等领域 2。
中国 GPS 导航的市场潜力巨大, 自 浏 地 路 车 我 览 址 径 辆未来五年,中国车载导航市场将持续保持快速增长 定 地 搜 跟 跟 位 图 索 踪 踪趋势, 市场规模年均增长 25 左右, 预计到 2012年,中国车载导航市场规模将达到近 2000 亿元。
图2 系统功能框图 Fig.2 System function diagram2 系统总体架构 系统整体结构框图如图 1 所示。
车辆定位导航 4 各个模块详细设计系统要求具备高可靠性、 良好的扩展性和兼容性。
在应用程序开发过程中,要用到一系列用于在本系统设计有 GPS 模块实现导航,嵌入 GPRS 模块 Google Map 上显示 、控 制 、层 叠 和 定 位 信 息 的 功 能 类。
以下是开发过程中用到的最重要的几个类 3: (1 )MapController :控制地图移动,伸缩,以某个 Google
Android 嵌入式 GPS 坐标为中心, 控制 MapView 中的 view 组件,管 Maps API 操作系统 理 Overlay ,提供 View 的基本功能。
使用多种地图模 式 (地 图 模 式 (某 些 城 市 可 实 时 对 交 通 状 况 进 行 更 LED 显示屏 新),卫星模式,街景模式)来查看 Google Map 。
GPS 车载定位 (2)Map View :Map View 是 用 来 显 示 地 图 的 GPRS 导航终端 View 组 件 , 它 派 生
android.view.ViewGroup 。
当 通信模块 硬件平台 触摸屏输入 MapView 获得焦点, 可以控制地图的移动和缩放 。
语音提示 MapView 只 能 被 MapActivity 来 创 建 , 这 是 因 为 图1 系统框图 MapView 需要通过后台的线程来连接网络或者文件 Fig.1 System diagram 系统,而这些线程要由 MapActivity 来管理。
2 Automation & Instrumentation 20124 专题研究 (3)MapActivity : 管 理 Activity 的 生 命 周 期 ,为 LocationManager locationManager (LocationManager)getSystem- Service(Context.LOCATION_SERVICE );// 取得定位服务对象实例MapView 建 立 及 取 消 对 Map Service 的 连 接 。
Ma- String provider locationManager.getBestProvider (criteria,true );//pActivity 是一个抽象类,任何想要显示 MapView 的 取得效果最好的 criteriaactivity 都 需 派 生 自 MapActivity 。
并 在 其 派 生 类 的 Location location locationManager.getLastKnownLocationonCreate () 中 , 都 要 创 建 一 个 MapView 实 例 , 可 通 (provider );// 得到地理坐标相关信息过 MapViewconstructor (然后添加到 View 中 View- updateLocation (location );// 更新新坐标 locationManager.requestLocationUpdates (provier,1000 ,0 ,location-Group.addView (View))或通过 Layout XML 来创建。
Listener );// 注 册 一 个 周 期 性 更 新 , 每 1000ms 更 新 一 次 ,locationLis- (4)Overlay :Overlay 是 覆 盖 到 MapView 的 最 上 tener 用来设置监听定位信息的改变层,可以扩展其 ondraw 接口,自定义在 MapView 中 // 添加 Overlay,用于显示标注信息显 示 一 些 自 己 的 东 西 。
MapView 通 过 MapView. MyLocationOverlay myLocationOverlay new MyLocationOverlaygetOverlays ()对 Overlay 进行管理。
(); (5)LocationProvider :该类是定位提供者的抽象 ListltOverlaygt list myMapView.getOverlays();类, 定位提供者具备周期性报告设备地理位置的 list.add (myLocationOverlay);功能。
4.2 地图浏览功能实现 (6)LocationManager :该类提供访问定位服务的 车主浏览地图模式时, 地图可以以不同的形式功能,提供获取最佳定位提供者的一系列功能。
来显示出来,如街景模式、交通模式、卫星模式等,在 (7)LocationLister :提供定位信息发生改变时的 程 序 中 通 过 MapView 类 对 象 中 方 法 setSatellite回调功能。
(boolean) setTraffic (boolean),setStreetView (boolean) (8)Criteria :该类使得应用能够通过在 Location- 实现各个地图模式。
核心代码如下:Provider 中 设 置 相 应 的 属 性 来 选 择 合 适 的 定 位 提 myMapView.setStreetView(true );供者。
myMapView.setTraffic(true ); (9)Geocoder :用于处理地理编码和反向地理编 myMapView.setSatellite(true );码的类。
地理编码是将地址或其他描述转变成精度 4.3 地址搜索功能实现和纬度,反向地理编码则是将经度和纬度转变成地 在车主进行地址搜索时,当车主在搜索框键入址或描述语言。
目标地址时,程序开始读取数据并开始进行地址解 地图的基本界面组件为 “Map View ”, 在使用 析,然后将目标地址用 Overlay 在地图上标注出来。
Google Map 服务时, 必须首先通过 Google Map 网 在此功能设计过程中,主要用到了处理地理编码的站,通过注册“证书”,取得属于 自 己 的 Google 地 图 Geocoder 类,对地址进行正向地理编码处理 4。
部分服 务 “开 发 密 钥 ”(API Key ), 并 在 AndroidManifest. 关键代码实现如下:xml 注册相应的活动和权限, 然后进行一系列的地 Geocoder geocoder; geocodernewGeocoder (getApplicationContext ,Locale.getDefault );图功能开发。
// 实例化 Geocoder 对象4.1 车辆自我定位功能实现 ListltAddressgt locationsnull ;// 建立位置列表 车辆自我定位功能模块就是将车辆当前地理 locationsgeocoder.getFromLocationName(address,10);//获得位置位置信息显示和标注在地图界面。
在界面布局文件 4.4 路径跟踪功能实现中,设置一个 TextView 用于显示当前的地理位置信 当车主点击路径跟踪选项功能后,系统会将车息,主界面为 View 地图界面,在界面底端设计 2 个 主以往的行踪在地图上绘制出来,方便车主回顾以Button 按键实现对地图各个模式的切换。
前所走过的路线。
用
Android 提供的地理位置服务功能 API 去收 在程序中,创建一个 PositionChanging 函数进行集 当 前 的 位 置 。
这 里 主 要 用 到 LocationManager 、 位置管理和位置监听,并将每次位置变化的经纬度LocationProvider 、Location 、Criteria 等 功 能 类 进 行 定 信 息 都 记 录 保 存 到 SQLite 数 据 库 表 中 ,SQLite 是位实现。
同时通过继承 OverlayItem 类对当前所在位
Android 系统中自带的一个轻量型数据库,可以方便置进行地图标注显示。
程序的部分关键代码如下: 永久储存数据信息。
接着通过继承 OverlayltOver-自动化与仪表 20124 3 专题研究layIte mgt 类,实现一个新的类 MyOverlay ,对数据库 件 中 进 行 声 明 。
通 过 编 写 一 个 意 图 接 收 类 Loca-中的经纬度数据进行读取, 并通过函数 toPixels 将 tionReceiver 实 现 对 短 信 息 的 监 听 , 该 类 继 承 自 广GPS 获得的 GePoint 点转化成手机屏幕上相应的位 播接收类 BroadcastReceiver 类。
在复写函数 onRe-置坐标以实现对标注图层的管理,最后重写 draw 函 ceive 中 , 首 先 判 断 监 听 到 的 Intent 是 否 为 需 要 的数实现对坐标数据依次进行绘图实现 5。
SMS_Intent ,若满足条件,则将 Intent 对象进行数据4.5 车辆跟踪功能实现 封 装 , 然 后 通 过 SmsMessage 类 对 象 函 数 create- 车主可使用手机向车辆导航终端发送特定格 FromPdu ,getDisplayMessageBody (), getDisplayOrigi-式短信, 自动启动车辆导航终 端 后 台 服 务 GPS 程 natingAddress ()对 短 信 内 容 解 析 ,如 果 接 收 到 短 信序 ,然 后 车 辆 导 航 终 端 通 过 短 信 回 执 ,将 其 当 前 的 内容包含 LOCATION_MESSAGE 字段,则启动位 置地理位置信息发送给请求手机,从而实现车辆跟踪 服务,并将位置信息自动回执给请求手机。
和防盗功能。
4.6 系统测试结果 在 程 序 中 ,需 要 建 立 一 个 意 图 ( Intent ) 接 收 器 整个功能模块实现后,运行程序,对整个车载导SMS_Intent , 活 动 类 型 为 “
android.provider.Telepho- 航系统进行测试,测试结果如图 3、4、5 所示,结果表ny.SMS_RECEIVED ”, 并 在 AndroidManifest.xml 文 明,整体设计满足要求,性能稳定,运行良好。
图3 车辆位置定位画面 图4 浏览地图显示界面 图5 路径功能显示界面 Fig.3 Position frame Fig.4 Display interface Fig.5 Display interface of Path function of vehicle ’s location of browsing map 现更加个性化的应用设置。
5 结语 本文主要利用当前最流行的
Android 智能移动 参考文献: 1 农 丽 萍 ,王 力 虎 ,黄 一 平 .
Android 在 嵌 入 式 车 载 导 航 系 统 的 应平台和 GPS 定位服务实现了车辆 定 位 导 航 系 统 的 用研究 J. 计算机工程与设计,2010 ,3 (11 ):73-76.设计与实现,经过测试检验,系统运行稳定可靠,完 2 Whipple J,Arensman W,Boler M S.A public safety application成了车辆自我定位、浏览地图、地址查询、路径跟 of
android operating systemC//Systems ,Man and Cybernetics ,踪 、车 辆 跟 踪 功 能 的 实 .
上一篇:
Android 平台上音视频系统的研究及播放器开发
下一篇:
7*30m公路预应力混凝土连续梁桥上部结构设计