基于Android平台的车载导航系统的研究与设计

2015-08-02 03:58符秋丽林吉达
微型电脑应用 2015年1期
关键词:功能模块导航系统车载

符秋丽,林吉达

基于Android平台的车载导航系统的研究与设计

符秋丽,林吉达

为缩短嵌入式车载导航系统开发进程,提高系统维护和升级能力,研究了Android平台的特点以及车载导航系统的性能需求,提出在andriod平台基础上,结合baidu map,设计一个基于Android平台的车载导航终端系统;实验结果表明,该系统实现了车辆自我定位、地图查询、路径规划和导航;经过严格测试,系统运行良好。

Android平台;GPS/北斗;Baidu Map;定位导航

0 引言

车载导航系统[1-3](简称VNS)通过将定位技术、地理信息系统、通讯技术以及嵌入式计算机技术结合在一起,为汽车用户提供导航、地理信息及其他服务。随着城市化的进展和汽车的普及,交通拥挤加剧,交通事故频发,交通环境恶化,这成为长期以来困扰发展中国家和发达国家的严重问题[4],因此,车载导航系统的需求就更加紧迫。

由于嵌入式Linux[5]和java[6]构成的Android系统,其构架和工作原理决定了它是目前最具有可移植性的移动设备操作系统[7],因此,本文在众多嵌入式软件中选择Android操作系统作为车载导航系统终端软件,利用GPS/北斗联合功能模块[8],结合百度地图 API[9],设计和实现了一个车载导航软件系统,能给车辆提供最基本的定位和导航,并具备成本低、功耗小的特点,具有一定的市场推广价值。

1 Android平台

1.1 Android平台介绍

Android是Google于2007年宣布以Linux为基础的开放源码操作系统,该平台由操作系统、中间件、用户界面和应用软件组成。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年由Google收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域。Google重新设计了Java虚拟机和系统,使Android的Java应用更接近于底层系统,效率更高;另外使用虚拟机技术使Android的应用在被监控情况下运行,安全性更高。它是一个对第三方软件安全开放的平台,代码完全开源免费。Android的应用程序是用Java语言开发的,其编程语言完全开源免费。因此,利用Android操作系统作为车载导航终端的应用平台,由于操作系统与软件免费,导航终端更便宜;统一平台克服格式问题,功能更多元;使用者决定功能,比个人电脑个人、更贴近消费者[10]。

2 系统总体框架设计

本系统通过GPS和北斗联合定位系统进行导航,通过语音提示实现路径引导;具有丰富的地理信息和查询功能,通过百度电子地图并配合Android系统软件的API接口,具有不断升级的地图库,按照用户的需求进行各种信息查询;真正实现一个体积小、功耗低、成本低并且人机界面友好的嵌入式操作系统平台[11]。系统整体结构框图,如图1所示:

图1车载导航终端整体架构框图

利用 Android 操作系统在 ARM 硬件平台上实现车载导航终端各功能模块的整合。各模块配合相应的软件驱动,完成指定的功能,如对定位信息进行数据处理,计算所在位置的经度、纬度、海拔、速度和时间等,并实时获取定位的参数[12]。

北斗/GPS定位信号的接收采用的是和芯通公司的UM220双系统导航/授时模块,能够支持BD2 B1、GPS L1两个频点,其集成度高,功耗低,重量轻,体积小,非常适合北斗系统大规模应用的需求[13]。

百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口。可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类引用程序。百度地图Android SDK提供的所有服务是免费的,接口使用无次数限制[12]。

3 系统软件设计

在车载导航系统软件设计过程中,需要实现车载导航终端各功能模块的整合。首先安装Android系统,运用eclipse关联Android SDK,新建android应用项目,导入百度地图开发包和加入SerialPort.java。此开发包是一套基于Android 2.1及以上版本设备的应用程序接口,可以使用该包开发适用于Android系统移动设备的地图应用,通过调用地图API,可以轻松访问百度地图服务和数据。本车载导航系统的主要功能模块,如图2所示:

图2 系统功能模块图

4 主要功能模块详细设计

4.1 查询功能

查询功能包括周边查询和驾车路线查询。周边查询可以是查询当前位置附近的餐厅、加油站、旅游景点、酒店、超市等信息。系统可以根据用户输入的关键词在周边搜索,并将结果标记在地图上。所用的函数是百度地图提供的MKSearch函数。例如要搜索当前位置附近的餐厅,调用MKSearch.poiSearchInCity(editCity.getText( ).toString( ),editSearchKey.getText( ). toString( ))即可[12]。

4.2 车辆自我定位功能实现

车辆自我定位功能模块就是将车辆当前地理位置信息显示和标注在地图界面上[11]。用 Android 提供的地理位置服务功能 API 去收集当前的位置[14]。在界面布局文件中,需要通过RockyGeo类中的String latitude、String longitude、char lat、char lon 4个变量保存经纬度信息,为了在地图上标出当前的所在位置,需要通过my Location Overlay类的set Data( )方法和my Map View.get Overlays( ).add( )方法在当前位置上标注,用泡泡显示为当前的位置。程序的部分关键代码如下:

Public class MyLocationListenner implements

BDLocationListener {

public void onReceiveLocation(BDLocation location) {

if (location == null)

return;

locData.latitude = location.getLatitude( );

locData.longitude = location.getLongitude( );

locData.accuracy = location.getRadius( );

locData.direction = location.getDerect( );

myLocationOverlay.setData(locData);

mMapView.refresh( );

if (isRequest || isFirstLoc) {

Log.d("LocationOverlay", "receive location,

animate to it");

mMapController.animateTo(new GeoPoint(

(int) (locData.latitude * 1e6),

(int) (locData.longitude * 1e6)));

isRequest = false;

myLocationOver

lay.setLocationMode(LocationMode.FOLLO

WING); requestLocBut

ton.setText("跟随");

mCurBtnType=E_BUTTON_TYPE.FOLLOW;

}

// 首次定位完成

isFirstLoc = false;

}

public class locationOverlay extends MyLocatio

nOverlay {

public locationOverlay(MapView mapView)

super(mapView);

// TODO Auto-generated constructor stub

}

protected boolean dispatchTap( ) {

// TODO Auto-generated method stub

// 处理点击事件,弹出泡泡

popupText.setBackgroundResource-

(R.drawable.popup);

popupText.setText("我的位置");

pop.showPopup(BMapUtil.getBitmapFrom

View(popupText), new GeoPoint(

(int) (locData.latitude * 1e6),

(int) (locData.longitude * 1e6)), 8);

图6 导航显示

5 总结

本文是在ARM[17]硬件平台基础上,结合Andorid系统和百度地图API,设计和实现了一款车载导航终端系统,经过测试检验,系统运行稳定可靠,完成了车辆自我定位,地图查询、路径规划和路径导航等功能的实现,满足了市场上对车载导航的基本要求,具有一定的市场推广价值。

[1] 高超.车载导航系统的研究及其软件设计[D]哈尔滨:哈尔滨工程大学,2004:10-38.

[2] 陈明杰.车载定位导航系统的设计与实现[D].哈尔滨:哈尔滨工程大学, 2002: 10-14,36-44.

[3] 张可.车辆导航系统关键技术研究[D].北京:北京工业大学,2001:6-7,29-43,115-148.

[4] 李欣,俞斌.一种改进的地图匹配技术在车载导航系统中的应用[J].电子测试,2008(5):60-65.

[5] 张从力,刘洋,万正道.基于嵌入式Linux车载导航系统的设计[J].佳木斯大学学报,2009,2(27):188-191.

[6] 陈国君.Java程序设计基础[D].北京:清华大学出版社,2013.

[7] 马越.Android的架构与应用[D].北京:中国地质大学,2008.

[8] 沈贵元,李斌,王铁英.基于CK-CORE处理器的导航SOC设计[J].无线电工程,2014,7(44):51-53.

[9] 文斌,李代伟.基于Android的移动公交辅助导航系统设计与实现[J].成都信息工程学院学报,2012,5(27):437-442.

[10] 农丽萍,王力虎,黄一平.Android在嵌入式车载导航系统的应用研究[J].计算机工程与设计,2010,3(11):73-76.

[11] 谢剑锋,胡钢,马胜.基于Android技术的北斗/GPS车载导航系统设计[J].单片机与嵌入式系统应用,2013,13(10):76-79.

[12] 肖文平,杨威.基于Android的车载导航系统的研究与设计[J].单片机与嵌入式系统应用,2012,12(4):67-70.

[13] 李晓侠,彭楚武,易珂,黎职富.基于嵌入式 Linux 的车载定位系统设计[J].微计算机信息,2008,24(5-1):188-190.

[14] 刘胜前,陈立定.基于Android平台的车辆导航系统设计与实现[J].自动化与仪表,2012,10(4):1-4.

[15] 应文健.自主车导航中提高目标行为预测能力的新方法[J].计算机测量与控制,2012,20(8):2048-2050.

[16] 徐兵,廖友成,刘文杰.基于Android平台的车载导航系统研究[J].计算机测量与控制.2014.22(2):601-603.

[17] 陈浩,张敏.基于ARM的车载导航接收机应用软件设计与实现[J].计算机测量与控制.2013.21(3):813-815.

Research and Implementation of Vehicle’s Navigation System Based on the Android

Fu Qiuli, Lin Jida
(College of Computer and Electronic Information, Guangdong University of Petrochemical Technology, Maoming 525000,China)

To shorten the development process of embedded vehicle navigation system, improve the maintenance of system and upgrading ability, this paper analyzes the characteristics of Android platform and the performance requirement of vehicle navigation system. Combined with Baidu Map, the paper designs a software system for vehicle’s navigation system based on the Android. The experiment result indicates that the system implements the vehicles’ self-positioning, map browsing, location searching and navigating. After strict test, the system runs well.

Android Platform; GPS and Beidou; Baidu Map; Location Navigation

TP316

A

2014.11.12)

1007-757X(2015)01-0029-03

茂名市科技计划项目(2012B01036)

符秋丽(1981 -),女,河南人,广东石油化工学院,计算机与电子信息学院,讲师,硕士,研究方向:嵌入式硬件架构,茂名,525000

林吉达(1992 -),广东人,广东石油化工学院,计算机与电子信息学院,学生,茂名,525000

猜你喜欢
功能模块导航系统车载
一种车载可折叠宿营住房
说说“北斗导航系统”
高速磁浮车载运行控制系统综述
奔驰S级48V车载电气系统(下)
“北斗”导航系统是怎样炼成的
一种GNSS/SINS容错深组合导航系统设计
智能互联势不可挡 车载存储需求爆发
解读全球第四大导航系统
基于ASP.NET标准的采购管理系统研究
输电线路附着物测算系统测算功能模块的研究