导航矢量图形系统 嵌入式车载导航信息系统结构
分析研究嵌入式车载导航信息系统体系结构,以实时多任务嵌入式操作系统Windows CE.NET为嵌入式软件平台,搭建了嵌入式车载导航信息系统的应用环境。以车载导航信息系统的导航电子地图和导航数据库作为重点研究对象。分析导航信息系统中导航电子地图和导航数据库的实现方法。
我国GPS车辆导航系统受国内汽车工业发展现状、电子地图配套限制等诸多综合因素制约,仍处于初始发展阶段。在功能上,大部分GPS车辆导航系统还只有车辆跟踪、数字地图查询、路径简单规划等基本功能。本文对嵌入式车载导航信息系统体系结构进行研究,给出一个完整系统结构。并重点讨论导航电子地图的实现方法。
1 嵌入式车载导航信息系统结构
车载导航信息系统借助于定位、地理信息处理和通信等技术,通过处理车辆状态数据。配合地理信息系统和导航数据库处理信息,并与服务中心交流信息交流,可提供定位、电子地图、路径规划和引导、信息查询、历史行驶状态详细记录、通信等功能。图1为该导航信息系统功能各模块关系。
图1中,定位系统包括定位模块和地图匹配模块,可得到系统的实时姿态数据,如经度、纬度、高度、速度、运动方向等;数字地图数据库包含预先定义好存储格式的数字地图信息,提供计算机处理与地图有关信息,如辨别场所、公路等级、交通规则和旅行信息等:路径规划和路径引导模块功能是根据地图数据库模块所提供的地图数据,加上从无线通讯网络收到的实时交通信息,按照某个指标(如最小时间或者最小旅行代价)帮助用户在行驶前或运行中规划路线;人机接口允许用户与定位和导航计算机及装置进行人机交互;无线通讯模块进一步改进系统性能并增加系统功能。
传统的导航信息系统主要有2种实现方法:基于单片机的简易导航系统和基于移动PC的导航系统。前者结构简单,价格便宜,但功能有限,仅仅实现定位、简易位置指示以及简单通讯功能;而后者以PC操作系统为软件平台,应用专业软件包或自主开发软件包,配以相应外围模块(如定位、通讯等)能够实现导航所有复杂功能,但价格高,且难以适应车载环境。因此,采用嵌入式系统作为现代车载导航系统的运行平台是必然选择。
选用PCM-5820作为嵌入式车载信息系统的硬件平台,Windows CE作为嵌入式系统的操作系统平台。PCM-5820完全满足系统在存储容量、处理速度、通信接口、功耗、体积等方面的要求。Windows CE具有方便定制、移植简单、实时性强、可靠性高、体积小等优点,且具有与PC操作系统一致界面风格和操作方式,实现丰富的API,便于开发。基于以上平台,图2给出嵌入式车载导航系统的软件结构。
该系统的定位模块和无线通讯模块需借助相应装置,导航信息系统直接收发这些装置数据,处理后为系统所用;路径规划和路线引导模块功能的实现算法研究已相当深入,这里不再赘述。而对于导航电子地图模块,为便于功能实现和后期扩展,按其功能分为矢量图形系统和导航数据库系统,前者是按特定要求显示矢量图形,后者是存储和管理图形元素的几何数据(如坐标等)、属性数据(如道路等级等)以及其他相关数据(如交通信息等)。
2 导航矢量图形系统
2.1 基于EVC的矢量图形系统
分析地图发现,地图矢量化后矢量图形的元素类型有:点(Point)、线(Line)、连续折线(Polyline)、区域(Region)、弧线(Arc)、文本(Text)、矩形(Rectangle)、圆角矩形(Rounded Rectangle)、椭圆(Ellipse)、圆(Circle)、符号(Symbol)等11个类型。导航电子地图中,符号只用于显示,而且类型有限,该系统采用栅格方式在矢量图形上透明显示。其余10种图形元素并非独立分类,比如,元素点可用其他若干个元素组合表达:矩形元素(在嵌入式C++中有直接函数支持)实质是一个特殊区域。
考虑以上每个对象类都有如线型、颜色等的公共数据,可抽象一个基类。本文共建立了15对象类及结构:基类Class CDraw、线类Class Cline:public CDraw、多线类Class CPline:public CDraw、区域类Class CArea:public CDraw、椭圆弧类Class CEarc:public CDraw、圆类伪代码描述Class CCirele:public CDraw、矩形类Class Crectangle:public CDraw、圆角矩形类Class CroundedRectangle:public CDraw、椭圆类Class CEllipse:public CDraw、文本类Class CText:public CDraw、符号类Class CSvmbol:public CDraw、绘制矢量图形参数类ClassCgraphPara、图层属性结构typedef struct、当前画面属性结构tvoedef struct、导航目标属性结构typedef stmct。
车载导航电子地图一般采用小液晶显示屏显示。为了实现导航,显示的画面内容应尽可能简单明了,所以矢量图形将数据分层组织,在图形元素的基类中设有表示元素所处图层的信息。除了将元素分类为不同的显示图层,简化显示内容,基类还可设置该元素是否显示标志位,这样可提高显示速度,节省资源。例如。在同一图层元素,如果有些元素不在当前显示窗口,可以不进行与显示有关的后台操作(坐标变换等)。DPtoVP和VPtoDP方法是实际坐标(地理坐标)和图形坐标相转换。通过矢量化得到的图形元素的位置数据一般是某种坐标系下的坐标值,而本系统用户可见的显示坐标范围为从(0,0)至(640,480),所以需进行坐标变换。每个图形元素都需Draw(绘制)方法,但不同元素的绘制方法各不相同,为了方便Draw方法使用,在基类中将Draw定义为纯虚函数,在子类中重载时再具体赋以不同绘制内容。