嵌入式地图

关键词: 电子地图

嵌入式地图(精选三篇)

嵌入式地图 篇1

关键词:嵌入式地图,数据分块组织,QT/Embedded

0 引言

近年来,嵌入式Linux得到了快速发展,它被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。车辆导航系统是空间信息产业中卫星导航产业的一个重要的发展领域。导航电子地图数据是导航系统的基础,其存储和组织策略是嵌入式导航系统中最基本和重要的一部分。导航是集GIS、GPS、通信、嵌入式软硬件技术为一体的高度综合性的高技术产品。在导航系统中电子地图数据量比较大,而嵌入式设备资源比较有限,所以电子地图数据组织的好坏,决定了导航系统本身的成败。

1 数据的分块的边界问题

嵌入式设备的LCD一般都比较小,本文使用的LCD大小是480×272。嵌入式设备内存也较小,不能一次把所有电子地图数据读入内存,即使能够把全部数据读入到内存,在LCD屏幕上也不能完全显示,这样大大浪费了有限的内存资源。把嵌入式电子地图数据分块组织,节省了嵌入式设备的CPU和内存资源。数据地图数据分块后,原来数据的拓扑关系被破坏,数据块的边界可能出现问题。比如一条线从一数据块中射出,因为数据块的不同,跨越多个数据块的线会出现线的断点情况,此时需要重新求得数据块边界与线的交点,重建拓扑。再者,地图中的线并不是规则的折线,可能从一个数据块中射出,而后经过弯转重新进入该数据块,数据分块的时候不考虑这个问题,就会出现拓扑错误。

本文提出了一种数据分块组织方法。即把一幅地图按照行列分成行×列个规则矩形网格(Grid)[3]。为了便于数据的读取,给格网的每个网格进行编码。如图1所示把几条线路分割成4×5个网格。

地图分割成一定数量的规则网格后,为便于读取格网数据,需要对不同的网格编码组织。规则格网是一种普遍应用的分块方法,只需指定在行、列方向上的分块数m、n,就可以按照相等的间隔把图像区域分为m×n个子块。假如地图被分割成i×j个网格的格网,格网中的网格用“mn”、“m,n”或Grid(m,n)表示,其中m表示网格行号,n表示网格列号。简单按照行列进行编码,比较方便数据组织。如上图:从左上角开始,第一行的网格编码为00、01、02、03。这种简单的网格编码,可以很容易找到其相邻的网格,如用m表示网格的行号,用n表示网格的列号,则编码为Grid(m,n)的网格,其左边的网格编码为Grid(m,n-1),右边相邻的网格编码为Grid(m,n+1),如果找其上方下方的网格,只需行号保持不变列号加1或者减1即可。如果一节点x在网格mn中,则点x属于网格mn,即x∈Grid(m,n);如果一条线L在网格mn中,则线L属于网格mn,即L∈Grid(m,n)。

规则的格网是按照一定的长宽划分的,假如每个网格的长为272、宽为480,一个长为816宽为960的地图,就被分成3×2个规则网格。

电子地图数据包括很多元素,其中包括点、线、区域等。对于地图上的点来说,可以很容易判断其属于哪个网格。比如点p(242,400),网格的长如果为272,宽为480,则点p属于第一个网格,其编码为00。线或区域分布在很多网格里面,这样就会与不同的网格边界有交点,实际上这个交点不一定存在。比如一条线Line,由4个节点P1、P2、P3、P4组成。Line分布在三个网格中,如图2所示。

读取格网数据时,如果没有读取到网格10和11的数据,只显示网格00的数据,那么Line会出现断点,如图3所示:

可以看出,P2和P3的点之间的连线消失了。因为,在网格00的数据里并没有P3点的信息,Line在网格00中显示的只是P1到P2的连接线。同样,如果显示网格10的数据,而不显示网格00的数据和网格11的数据,在网格10中,Line只有一个点P3,而P3到P2、P4的连接线消失了。此时需要添加节点并且断开原来的线段重建拓扑来处理连接线消失的情况。断开线段p2p3,并求得p2p3与网格00、网格10边界的交点p,此时p2p属于网格00中,pp3属于网格10。如图4所示。实际上,路段是不规则的,可能出现如图5所示的情况。

从图5可以看出,一条线从网格射出后,然后再次穿过该网格。并与网格有4个交点。在重建拓扑关系的时候,两次穿过格网中的线要被分成两部分重新建立拓扑,因为线是由按照一定顺序的节点以及节点之间的连线组成。当一条线从一网格射出时,如果不断开该线重建拓扑,则会出现如图6所示的情况,出现了拓扑错误。图6中的线段pp1实际上是不存在的。

2 拓扑重构算法

有时路网结构很复杂,一条线可能多次穿过同一网格,即一条线与网格的交点可能不只4个,如果不重建拓扑,可能会造成电子地图画面更加混乱。所以在每次求得线与网格边界交点的时候,判断该线是否从网格中射出,如果线从网格中射出则断开该线,并求得交点后重新建立拓扑关系。求得线与网格边界交点的算法如下:

(1)假设当前网格的编码为mn。

(2)如果线L上的一个节点P1属于当前网格mn,判断线L上p1的前一个节点P0是否属于当前网格mn,如果p1不属于当前网格mn则转到(3);如果p0属于当前网格mn,则转到(4);如节点p0不属于当前网格mn,如果p1在格网边界转到(4);如果p1不在网格边界上则求P0和p1的连线与网格边界的交点p,并把p的信息保存到网格mn中,转到(4)。此时p节点属于网格mn。

(3)如果线L上的一个节点P1不属于当前网格,判断p1在线L上的前一个点P0是否属于网格mn,如果p0不属于网格mn,则转到(4)。如果节点p0属于当前网格mn,此时线L从网格mn射出,如果p0在网格边界,转到(4);如果p0不在网格边界则求P0和P1的连线与网格mn边界的交点p,把线L断开重建拓扑关系。并把p的信息保存到网格mn中,转到(4)。此时节点p属于网格mn。

(4)如果线L上的点处理完毕则返回,否则继续(2),直到线L上的所有点处理判断完毕。

流程图如图7所示。

3 数据分级组织

导航系统在使用过程中,用户的兴趣点不同,会放大电子地图查看某个区域更详细的信息。把电子地图数据分级适合地图缩放功能的实现。假如电子地图最初显示的地图为x级,放大一次就是显示x+1级地图,缩小一次就显示x-1级地图。

如图8所示,浏览x级地图,假设x级地图显示m(m=4)块格网的数据;此时地图放大一级变成x+1级地图,如果地图放大了s倍(s=2),此时重新读取地图数据,只需读取m/s2块网格即可。相反,如果地图缩小一级,x-1级地图需读取的网格数为m×s2(16块)。

不同级别的地图数据显示的内容不同。在缩放最小一级地图时,只显示地图的区界和背景。假如把地图放大到某一级别,此时电子地图显示地区名称、高速公路以及名称、铁路等地图信息;再次把该电子地图放大一级则显示当前城市的主要地区名称和主要路段。放缩的级别划分根据不同的地理情况处理。可以认为,高级别的地图是对低级别地图的补充。

电子地图数据包括地物点、线、区域等。地图的属性分为地区名称、学校名称、公司名称等,线又分层划分为一级道路、二级道路、三级道路、水系等。基于上述电子地图数据的特点,根据中国行政单位的划分,把电子地图数据分层。电子地图数据分层可以加快数据的读取,也方便电子地图数据的存储[4,5]。

4 嵌入式电子地图实现

本文使用的嵌入式开发平台为:cpu s3c2440,64M nandflash,64M ram,1Gsd卡,480*272 LCD。本文选择QT/Embedded作为图形界面,并结合双缓冲机制QT/Embedded实现了嵌入式电子地图。

使用双缓冲画图,是避免地图在漫游、放缩的时候产生屏幕闪烁比较常见的方法。主要过程如下[6]:

(1)把需要显示的网格,画在QPximap上。

(2)通过bitblt()函数把QPximap上的图像拷贝到显示组件。

根据LCD的尺寸划分网格大小,即网格的宽为480,长为272。某一级别的电子地图每次读取9个网格数据,此时LCD屏幕的大小和格网的大小一样,每次读取9个网格数据,其中一个网格数据显示在LCD屏幕上,其它8个网格的数据为预取数据。如图9所示,网格22部分是LCD屏幕:

如图10所示,图像拖至左边边界。程序每次读取9个网格数据,LCD屏幕尺寸和一个网格一样大。根据LCD屏幕大小规定边界,比如图像向x轴正方向移动480像素时,即到了图像左边边界。每次拖动图像至边界,然后读取相邻网格数据,重新绘制地图,这样处理节省了系统开销,而且不需每次拖动图像的时候都要重新绘制地图而造成屏幕抖动或闪烁。

图像向x轴正向拖动至边界如图10所示,网格21为LCD屏幕。在拖动到边界后,再次拖动地图,根据网格的编码读取其相邻的网格数据。拖动后的图像如图11所示,格网21区域是LCD屏幕。

地图放缩时,根据放缩级别,读取相应级别的格网数据,重新绘制图像并把图像拷贝到屏幕相应位置。在本文中,电子地图数据放在sd卡来读取。

5 结论

依据本文的数据组织策略,不同级别的电子地图在嵌入式设备上漫游时,图像都可以平滑移动,时间延迟可以忽略,达到了嵌入式地图漫游的要求。而且依据本文的数据组织策略,建立一个合适的格网索引机制,在搜索地图和路径规划时,结合搜索算法,以网格为单位索引,也可以加快数据搜索速度。图12是地图数据测试界面。

参考文献

[1]成洁,吕遵明,敖雪.基于嵌入式Linux的嵌入式GIS的设计与实现[J].电子工程师,2006,32(11):69-71.

[2]陈刚,贾奋励.超大数据量矢量电子地图显示的方法研究及实践[J].测绘通报,2000(2):15-17.

[3]李鲁群,李成名,林宗坚.服务于PDA的矢量数据分块存储数据结构[J].测绘学报,2002,31(2):170-171.

[4]张为舟.嵌入式电子地图开发方法的研究[D].武汉:华中师范大学,2006.

[5]田劲松.GIS数据质量控制与数据转换研究[D].合肥:合肥工业大学,2006.

嵌入式地图 篇2

随着计算机的软、硬件技术的飞速发展,二维电子地图已经不能够满足人们的需求了。首先,二维电子地图是对三维空间的投影,非常的不直观,用户的体验受到限制。其次,二维电子地图由于其自身空间的限制,表达非常复杂的层次结构的空间物体相当困难,如立交桥和地下通道[1]等。因此,三维电子地图成为大势所趋。移动导航是它在嵌入式领域的一个非常重要的应用。三维电子地图的数据量相对于二维的地图增加了很多倍,嵌入式设备的处理器速度,内存大小,外存容量都是非常有限的,那么如何组织、存储三维电子地图数据和建立良好的空间索引成为了做好三维电子地图的基础。

空间索引是为了能够快速地搜索某个空间目标和方便其他的数据操作,依据空间要素的三维坐标或者其他的特征来组织空间数据的一种结构。作为一种非常重要的辅助性数据结构,良好的空间索引可以有效减少空间数据访问和磁盘的读写次数,加快三维电子地图的显示速度。因此,空间索引的优劣在三维电子地图数据库当中起着至关重要的作用。本文研究了各种空间索引的方法,如网格索引、R树索引等,比较它们各自的特征和适用的环境,提出了一种适用于嵌入式环境中的三维电子地图数据的外存索引方法,并在android的平台上,使用Sqlite数据库和文件操作验证了这种索引方法的实用性。

1 空间索引算法研究

相对于二维的电子地图,3维电子地图在垂直的方向上面进行了延伸,地图数据量有了显著的增加,这就使得索引要更加精细。由于空间索引非常重要,国内外很多学者对其进行了研究,根据不同的方式有不同的分类方法。

1.1 按照搜索分割对象分类

按照搜索分割对象的不同,可以将索引分为三类,第一类基于点区域的分割;第二类基于面区域的分割;第三类基于三维体区域分割[2]。常用的基于点区域分割的空间索引有B树、点四叉树等。B树比较适用于外查找,并且是平衡树。点四叉树的构建是一个不断划分的过程,每次输入一个点的坐标,然后以之为中心,将当前的区域划分为四个部分,称为四个象限。常用的基于面区域分割的空间索引有网格索引和R树系列[3]。常用的基于三维体区域的分割有八叉树以及对于八叉树的改进,如松散八叉树等。

实际应用中,网格索引比较常见。网格索引的思想比较简单,编程实现也容易。网格索引就是将整幅电子地图划分为P×Q个网格,每个网格的大小可以相等,亦可以不等。划分的方法可以自己定义,各有不同。每个网格当中包含实际的三维实体的数据,比如建筑物,道路等。每一个实体的空间数据落入一个或者多个网格当中。网格索引的存储通常结合某种编码,如Morton编码、Hilbert编码等,这是为了将高维数据变成一维来进行存储。网格索引的构造比较简单,要查询某一个实体的数据也比较容易,先计算出实体所在的网格,然后通网格号和编码的对应关系,可以计算出网格的编码号,通过编码号找出需要的实体数据。网格索引查询的效率虽然高,但是存在一个缺陷:有些实体位于几个网格的边缘,落入了几个网格中,为了能够很好地保证每个网格数据的完整性,我们不得不在这几个网格中都存下这个实体的数据,这样就产生了数据冗余。当网格划分越精细,那么数据的冗余就会非常大。对于三维的电子地图,数据多,要能够很好地显示场景,精度要求就会非常高,这样简单的网格索引就有些不适应了。

1.2 按照存储的介质进行分类

计算机的存储介质分为内存和外存,因此空间索引也分为外存索引和内存索引。对于三维电子地图,全部的三维数据是海量的,必须存于外存之中,而每次显示需要的数据需要加载入内存,无论是内存的数据,还是外存的数据都必须建立良好的索引,方能够使三维电子地图系统有良好的性能。

在通常情况下,CPU不会进行I/O操作,除非是系统产生了缺页中断。因此良好的内存索引查找需要数据的算法复杂度比较小,方能效率比较高。通常的外存是指磁盘,磁盘的读写速度相对于内存和寄存器而言,慢了很多,所以它的读写速度成为了一个瓶颈。因此良好的外存索引,必须尽可能地减少磁盘读写的次数,如地理空间上面相邻的元素,索引值尽可能靠近,在磁盘上面的位置也尽可能紧挨,这样可以一次读入多个相邻的元素,而不是分批次读入,这样可以减少磁盘读写的次数。比较常见的内存索引有点四叉树、BSP树等,对于三维的电子地图,比较常见内存索引方法有八叉树和其改进的算法等。三维电子地图的全部数据是海量的,比较常见的外存索引方法有R树及其变种和KDB树等[4]。

在关系数据库当中,B树索引结构应用非常广泛[5]。它是1970年R.Bayer和E.mccreight提出的一种适用于外查找的树。Sqlite数据库的索引结构是B+树, mysql使用了B树(包括B+树)作索引。B树由于其自身的结构特征,它的搜索的效率是非常高的,并且进行I/O的次数也少,所以在一维的索引中它很不错的。但是当电子地图扩展到二维、三维以后,B树作为索引结构效率就不高了,比如在管理块状区域方面,B树就不方便了。

R树是1984年由伯克利分校Guttman教授提出的一种适用于空间数据的索引结构[6], 它是动态的平衡树。和其他的树形结构一样,叶子节点和非叶子节点组成了一颗完整的R树。每个非叶子节点是由包含该节点的子节点数据的外接矩形(也可以是其他形状的区域)和指向其子节点的指针组成。而叶子节点通常只由包含其实体数据的外接矩形组成,当然有也可以有其他的数据结构用于特别的用途。R树由于存储效率相对较高,搜索的速度较快,在很多数据库当中得到了广泛的应用,如MapInfo SpatialWaro和Oracle Spatial当中都有用到它。R树的构建,是一个不断插入节点和节点不断分裂的过程,在这个过程当中,会发现很多节点数据的外接矩形会出现重叠,并且随着数据量的增加,重叠的次数会剧增。我们在搜索某个实体数据的时候,会出现多条路径,对于检索非常的不利。针对这个问题,有人提出了R树的变种,如R*,R+树等等。这些R树的变种,虽然解决了这个问题,但是带来了其他的问题,如 R+树为了保证不出现兄弟节点重叠的情况,插入一个节点后,可能引起整棵树的节点外接矩形都重新调整,树的构建效率大大降低,插入、删除等操作极为不便。

2 网格和R树的组合索引

本文研究的重点是嵌入式环境下面的三维电子地图的外存索引,对于高维的空间数据,R树外存索引结构应用非常广泛,虽然如此,但是R树存在两大缺点:一个是当数据量较大时,R树的区域之间重叠情况将会非常多,这样检索效率便会降低;另外一个是当数据量较大时,R树的深度也会非常深,那么R树检索的时间也会增大。网格的划分使得区域之间不会重叠,并且由于对整幅的三维电子地图进行了划分,这样每个网格之内的数据量也随之减少了。因此,本文提出一种网格索引与R树结合的索引,作为嵌入式环境下的三维电子地图的外存的索引结构。

2.1 网格索引与编码

网格索引的构造非常简单,就是将这整幅地图分成大小、形状相等或者不等的P×Q个网格。对于空间实体数据,我们希望地理上面相邻的数据,在磁盘上面的存储位置也是相邻的,因为对于空间数据的访问,其中网格内的数据被访问到了,那么这个网格相邻的网格内的数据很有可能立刻被访问到。如果我们在存储数据和建立索引结构的时候能够满足地理上相邻的空间数据在磁盘上的存储位置亦尽可能相邻,这样我们可以减少磁盘读写的次数和磁头移动的次数,对于嵌入式设备上面如此有限的资源而言,是非常有利的。为了能够达到这个目的,必须使用合理的编码方法,其中Hilbert编码比较常用。

Hilbert编码源于Hilbert曲线,Hilbert曲线是采用递归的方法定义的。每个曲线由四个小的曲线构成,这四个曲线是基本相同的,不过方向有所变化,之间采用短直线连接[7]。高阶的曲线是由低阶的曲线替换而得到的。如图1所示,是一阶的Hilbert曲线和二阶的Hilbert曲线。n阶的Hilbert曲线是由n-1阶Hilbert曲线构成的,n阶曲线每个顶点被一个经变换的n-1阶曲线替换。

不同曲线的聚类性能有所不同,经过证明Hilbert曲线的聚类性能是最好的。通过Hilbert编码将二维的网格映射到了一维,这样网格中的数据可以方便地线性存储。1989年,Faloutsos和Roseman提出了一种Hilbert码的经典生成算法,不过Hilbert码的生成算法有很多,本文使用陈宁涛提出的Hilbert码生成方法,本方法比较适合大型的Hilbert曲线生成,效率比较高,它的思想是“矩阵复制、翻转、迭代”[8]。

本方法生成Hilbert编码是一个不断迭代的过程。N阶由N-1阶生成,N-1由N-2生成…2阶由1阶生成。Hilbert曲线要求划分成的网格行列数都必须是2^n且相等。我们使用Array[i]表示一个网格,我们可以建立一个一维网格索引和二维网格索引的对应关系:Array[HilbertValue(n,i,j)]↔Grid[l,m]。其中i 、l表示网格所在的行,j、m表示网格所在的列。n表示Hilbert曲线的阶数,这样可知网格数为2^n×2^n。

2.2 R树索引

R树因为其高的存储效率在嵌入式数据库当中得到了广泛的应用。简单的R树的结构如图2所示,最外围的矩形框包含了要构建成R树索引的全部数据,最基本的实体外接矩形编号为4,5,…,9。构建R树索引是将最基本实体不断插入的过程,经过插入、分裂,4,5构成了一个新的节点,外接的矩形为1;6,7,9构成另外一个新节点,外接矩形为2;8,10构成第三个新节点,外接矩形为3。如图3所示。

R树存储的效率虽然比较高,但是如图2所示,外接矩形(MBR)2和3会有重叠的部分,随着数据量的增大,重叠的区域也会随之增多。三维的电子地图数据是海量的,这个问题将尤为突出。

2.3 网格与R树组合索引

网格索引和R树索引各自有优缺点,但是它们优势是可以互补的,缺点是可以减少的。针对嵌入式环境下的三维电子地图的外存,本文提出一种网格索引与R树索引结合的2级索引方法。由于嵌入式环境中的外存容量也是有限的,通常在10G以内,所以索引的建立也不能够过于复杂,这样会增加数据量。因此对于外存,我们不是用像八叉树这样的三维空间分割方法来建立索引,而是采用和二维地图的索引比较类似的方法。一个实体的数据作为一个整体存于外存之中,如果需要用到,调入内存以后,然后进行三维的空间分割,建立类似于八叉树的内存索引。

2.3.1 组合索引的构造

构造的具体方法:将三维地图投影于地面,形成类二维的地图,然后对二维的地图先进行网格划分。它和二维地图是不同的,在二维的地图中,一个建筑物的模型是一个点,但是这里投影到地面后,是一个矩形。划分的时候网格要粗略一些,这是为了减少一个物体跨越多个网格的情况,减少数据的冗余。然后对于每个网格中的数据建立一棵R树的索引,这样R所包含的数据量也不大,那么数据重叠的概率就会大大减少。并且算法也是比较简单,嵌入式设备上处理将会非常快,构造本索引的方法如图4所示。

图4中为了简化,只画出了4个网格,编号为0,1,2,3。每个网格中都有一个虚线的框,虚线框是该网格中的中所有实体数据的外接矩形(MBR)。然后为每个虚线框中的数据建立一棵R树的索引,如图4中间部分所示。R树索引的叶子节点存储了每个实体数据编号(ID)。对每个实体的三维空间数据,我们可以使用点、线、面、体的方法存于数据库当中。这样我们就可以方便、快速地检索到我们要的实体数据了。本索引的数据结构如图5所示。

Array数组的下标与网格的Hilbert编码对应,Array的每个元素指向了一棵R树,这棵R树就是每个网格中数据的索引结构。R树的每个节点的数据结构包含节点的ID、外接矩形MBR和指向其子节点的指针(或者编号),叶子节点存下实体的ID。

2.3.2 组合索引的算法

本文中的组合索引用于外存,所以先对电子地图划分好网格,为每个网格中的数据建立好R树索引,存于外存中。流程如图6所示。本索引的各种算法,如检索、插入、删除等,总体步骤比较类似,因此以检索为例说明如下:

(1) 根据实体的位置信息,计算出它所在的网格。如果实体落于多个网格中,选择行列号之和最小的,然后通过Array[HilbertValue(n,i,j)]↔Grid[l,m]对应关系,找到该实体对应数组Array的下标为i,再通过Array[i]中对应的该网格的R树索引路径,从SD卡中读入该R树索引到内存中。

(2) 按照对R树检索的算法,找到我们需要的实体的ID,读取实体的数据。这样检索一个实体数据,只需要读入一个网格的R树索引即可,无需读入大批量的数据。

3 实验结果与分析

为了验证本文提出的索引构建方法,我们使用嵌入式数据库Sqlite和基本的文件读写来实现这个索引结构。

实验软件平台采用Android系统,硬件配置:CPU为S3C6410(主频为667MHz),128MB Bytes Mobile DDR RAM,256MB Bytes NAND Flash。实验对象为浙江工业大学朝晖校区的三维电子地图,通过分析发现,本研究对象大约有122个实体,我们将这些实体投影于地面,以它们的最小外接矩形为对象建立索引。本文提出了网格索引与R树索引的组合索引的方式,为验证方法的有效性,我们对所研究的电子地图进行不同的网格大小划分,得到的参数对比如表1所示。

从表1可以看出,网格划分越细,数据的冗余就越大。但是如果网格划分太粗略,那么该网格内建立的R树索引的重叠区域就会越多,高度也会增加,自然检索的速度就会减慢。本文提出的先进行适当网格划分,再为每个网格内的数据建立R树索引的方法,平衡了空间与时间的关系,具有实用性。

4 结 语

本文综合网格索引和R树索引的优点,提出了一种网格索引和R树索引结合的二级索引作为三维电子地图外存索引的方法。这样,相对于网格索引,减少了数据冗余;相对于R树索引,减少了区域重叠的情况并且降低了R树的高度,提高了检索的速度。如此,提高了时间空间的利用效率,这对于嵌入式设备而言很有意义。

摘要:研究各种索引结构,如B树、四叉树、八叉树、网格、R树等,在此基础上提出一种网格索引和R树索引结合的索引方式。它适合作为嵌入式环境下的三维电子地图的外存索引。它比单纯的网格索引减少了数据冗余;比单纯的R树索引减少了区域重叠情况,降低了R树的高度,减少了检索的时间。并且其有效性在Android系统中得到了验证。

关键词:三维电子地图,网格索引,R树,Android,嵌入式系统

参考文献

[1]张林,杨兆升.车辆导航系统中基于三维电子地图的单GPS车道级定位方法研究[J].交通与计算机,2007,25(16):16-20.

[2]阎超德,赵学胜.GIS空间索引方法述评[J].地理与地理信息科学,2004,20(4):23-26.

[3]郑坤,朱良峰.3DGIS空间索引技术研究[J].地理与地理信息科学,2006,22(4):36-37.

[4]李晔.适合于配电GIS系统的空间索引研究[D].郑州:郑州大学信息工程学院,2005.

[5]沈永增,姚萌萌,周巍.空间数据在嵌入式导航系统中的索引[J].计算机系统应用,2010,19(4):85-87.

[6]何江,李志蜀,陈宇.一种基于R树空间索引技术的GIS数据索引方法[J].四川大学学报,2008,45(6):1342-1343.

[7]Breinholt G,Schierz C.Algorithm781:generating Hilbert’s Space-Fill-ing Curve by recursion[J].ACM Transactions on Mathematical Soft-ware,1998,24(2):184-189.

嵌入式地图 篇3

1 车载导航电子地图的体系结构

1.1 系统硬件设计方案

嵌入式系统作为电子地图的载体时,硬件系统需采用32位的微处理器,工作频率在400 HMz以上,以便能够处理大量的数据和流畅的运行操作系统。硬件系统需能够支持多媒体功能,支持LCD触摸屏输入、具有大容量SD卡的加载功能,所选取的操作系统应具有信息数据库和地图数据库的管理功能。

SH7764作为诊断仪的核心处理器,其最高工作频率为324 MHz,可实现583 MI/S的处理性能。FPU 支持单、双精度运算,可实现2.3 GFLOPS的最高性能。并具有丰富的硬件资源,包括硬件音频解码功能、正玄/余玄操作以及向量元算操作功能。外设执行存储功能包括NAND闪存控制器和存储卡控制器、以太网控制器(10/100BASE-T)、USB接口(全速/高速)、I2C总线接口、带有FIFO的串行通讯接口,显示支持功能是由2D图形引擎、LCD控制器和数字RGB输出功能提供的。

SH7764高速的数据处理性能和丰富的外设功能,使得SH7764处理器可以低廉的成本构成一个高性能的车载诊断处理系统。使用SH7764构成车载远程诊断仪时,电路框图如图1所示。

1.2 操作系统

WinCE操作系统是一个功能强、可裁剪、易移植的系统,且具备了系统所必须的用户信息数据库和数字地图数据库的存储及管理功能[1]。

在WinCE操作系统中,虚拟专用网络(Virtual Private Network,VPN)的操作性和适用性较强,其主要是利用公用网络作为用户信息传输的媒体,通过附加的隧道封装、信息加密、用户认证和访问控制等技术实现对信息传输过程的安全保护,从而向用户提供类似专用网络的安全性能。相对而言安全性大幅提升,因此这种基于网络信息安全系统一般会采用复杂的密码身份验证机制,得以保证系统账户的安全。系统采用严格的权限管理,用以确保系统运行的安全性。

(1)网络操作系统层:

通过网络和操作系统的管理机制并借助相应的管理软件和防火墙技术,防止病毒和黑客入侵企业的信息管理网络,对重要的数据和传输的数据进行加密处理,防止非法人员登录数据库和应用系统,保障在网络环境下的各项业务顺利进行。

(2)数据库系统层:

通过数据库操作系统ORACLE等管理机制和相应的管理软件,实现对登录数据库用户的检验,数据各种操作权限的控制,数据及时备份和历史数据的管理。

(3)系统应用层:

主要是系统平台提供的管理功能测试,有功能权限设置、数据权限设置、时间权限设置、应用控制机制和操作日志管理。

1.3 GIS软件设计

GIS软件的设计基础在于数据结构以及数据库结构的定义两方面,其直接决定了系统的稳定性、合理性、功能完整性、可扩充性等方面。GIS软件所具备的查询检索功能、图像功能、分析功能均依次为基础来进行开发的。

1.3.1 电子地图的文件格式与数据组织

在电子地图地理信息系统中,实行属性数据与空间数据的分开储存。其中,空间数据以电子地图的自身格式在文件中进行保存,而属性则以数据链形式在一份表中实现储存。且两者利用一定索引机制便可有效地关联。电子地图以土层为依据进行地理管理[2]。每个图层均由属性数据表结构文件、属性数据文件、交叉索引文件、空间数据文件多个基本文件构成。空间数据包括空间对象的颜色信息、坐标信息、几何类型等,当用户对索引字段加以规定后,索引文件便会在地理信息系统中自动生成。

电子地图通过“Table”的形式来建立属性数据与空间实体间的对应关系,并以此为基础建立起电子地图的查询检索系统。通过定义空间数据结构,对空间实体类型进行确定。数据库关系模型选用一组逻辑严密、结构简单的二维平面表为操作对象,Table中严禁重复存储,从而保障空间内唯一的实体记录。在描述空间实体类型的多种属性时,将其进行多个Table的分解,从而使其形成多重的链表关系,多个Table属性信息同空间实体发生联系,进而构成属性数据同空间实体间多重对应的关系[3]。

1.3.2 电子地图的数据索引机制

电子地图数据索引机制的索引设计过程如下:当从属性信息中进行空间信息的查询时,电子地图首先应在属性文件中找到数据库中的相应数据。此时就可在索引文件中选取相应指针,其所指的地图对象即为同数据库记录空间相对应的对象。从而能够在空间信息中进行属性信息的查询。(如对于某一空间对象已在地图上查出,电子地图便可在空间文件中读出同空间信息相对应的记录号,以此为依据,便可实现该地图对象属性信息在属性数据文件中的查询。)而MapInfo地理信息数据格式的应用,则可较好地落实上述索引思路,且能够按照土层间的叠加关系进行存放与显示。

1.3.3 电子地图的图层与图元

在MapX中,对于MapInfo表的地图标示均是以图层的形式进行显示的,这些图层中除有地物元素位置外,默认为透明。叠加图层后,便可看到地图的各种方面。图元则包括区域对象、点对象、线对象。在MapX中,通过对Feature对象的利用便可实现对上述地图对象的房问题,可完成创建、自定义、编辑、显示等操作。

1.3.4 应用Geoset,实现地图管理

对于满意的地图,便可进行保存,在驱动器中将其写入Geoset文件当中。将Geoset文件打开,全部地图的设置和土层均为保存时状态。此时,可应用MapX自带工具Geoset Manager可对.gst文件进行管理,来对管理缩放级别、图层、表和其他属性进行修改。

2 电子地图模块的二次开发

基于Active技术的MapX 控件为开发人员的二次开发提供了方便。在VC++等可视化开发环境中,将MapX控件嵌入到窗体中即可进行编程、设置属性等操作,完成空间数据查询,地理空间数据的可视化,编码等地图信息系统功能[4]。

2.1 安装MapX mobile

在MapX安装完毕后,添加MapX空间便可对地图进行显示。具体设计步骤为:建立标准exe于编程环境当中,从“工程”菜单中选取“部件”,随即将“部分对话框打开”,于部件列表内,将“MapX mobile V5.02”找到,完成复选后,点击“确定”。随后工具栏中便会将Map空间图标显示出来,此时,单击“控件”,便完成了工程中Map空间的引入[5]。

2.2 地图的基本操作

车载嵌入式车载导航中,主要通过DataSet对象和Layer对象操作来完成MapX地图操作。对同此类型对象的应用,仍可将地图土层添加到应用程序当中。而属性数据操作的完成,则可通过建立数据绑定、数据源设置的方式实现。而电子地图的加载主要通过以下两种设计形式实现。一是在MapX中加载一个Geoset对象,加载完成后,MapX将各个图层自动打开,在地图窗口中进行叠加,并对图层属性信息进行设置。二是在MapX中加载一个图层,该种方法是对一个MapInfo文件的直接加载,待图层打开后,其将在地图窗口内完成自动的叠加[6]。

2.3 地图的刷新

MapX首先绘制动态图层以外的全部图层,并在某一地方进行存储,当其他图层未变而动态图层发生变化时,便可通过已存储的动态图层和数据来实施覆盖处理,进而现实处理结果。地图的刷新过程设计为依次全部刷新的形式,从最小外界矩形窗口区域开始,来完成整合刷新过程。该方法的优点是相比于整个地图窗口的刷新形式要更加快速。同时,因受地图刷新速度的影响,MapX难以同时完成多目标的刷新,这时iju可进行统一刷新闹钟的设置,从而使每个一定时间间隔,目标地图便会自动刷新一次。

2.4 地图调用

首先,在工程中加入MaoX.cpp和MapX.h文件。在菜单“Project”中选择“Files”命令,随后将对话框打开选取MaoX.cpp和MapX.h文件加入到MapX系统当中。将MapX对象头文件加入到视图(包含MapX)中。针对MapX进行一个资源ID的创建,通过“新建—名称输入”的操作来完成。进行消息映射函数SIZE和CREATE的创建,在“视图/类导向”中选择视图类,并将两个信息在消息框中完成分别选择,之后通过函数的条件,来对代码进行编辑,导入地图。通过类向导,来进行SETFOCUS映射函数的创建,使得窗口在获得焦点的同时,地图空间也可获取焦点。

2.5 图层的控制

GIS软件中,通常需对图层属性进行设置,而通过对显示图层控制方法的应用便可实现此项功能,借助于MapX中可选择、可显示、自动标注、可编辑的四种属性设置来实现地理信息维护与查询功能的发挥。

2.6 鹰眼图的实现

鹰眼图是基于嵌入式车载导航电子地图的一项基本功能,其实现思路为:进行一个无模式对话框的创建,确立HAWK为ID。建立MapX空间来对鹰眼图进行控制,并创建一新图层于鹰眼图中,以此添加矩形框,对主视图中地图作出表示,且该矩形框的位置和大小不随主视图边界变化而发生变化[7]。添加一个按钮于对话框,依据按钮下的相应函数来操作鹰眼图MapX空间,从而使其对Map空间的操作得以实现,且当按下对话框按钮后,便可对CLICK信息进行发送。依靠此设计程度的鹰眼图可在EVC模拟器上运行,并具备了车载导航电子地图的基本功能。

3 结束语

嵌入式车载导航在车载导航领域中有广泛的应用,随着社会信息化的发展,嵌入式车载导航电子地图的功能必将进一步完善。因此,嵌入式车载导航的应用前景将十分广阔。

摘要:针对车辆远程终端仪中车载导航的硬件构成和GIS软件开发进行了探讨。给出了以Renesas Electronics公司SH7764微处理器为核心的电路图,对嵌入式电子地图的体系结构、数据管理等进行了论述。同时介绍了在MapXMobile下进行二次集成开发的过程。此系统在上海泛亚汽车技术有限公司实验用车上运行了两年,实际证明系统运行可靠,能满足生产的基本需求。

关键词:SH7764,GIS,MapX Mobile,GPS

参考文献

[1]汤璇.嵌入式车载导航系统的设计与研究[J].计算机与现代化,2009(3):80-85.

[2]张为舟.嵌入式电子地图开发方法的研究[J].计算机应用,2010(5):70-76.

[3]王海霞.车载导航系统中电子地图GIS的图形编辑、显示系统的研究与开发[J].计算机应用技术,2009(11):45-46.

[4]肖铁.嵌入式车载导航系统的设计与开发[J].控制理论与控制工程,2009(12):78-79.

[5]姚俊杰.基于嵌入式电子地图的导航路径规划研究[J].检测技术与自动化装置,2012(2):23-24.

[6]孟凡金,刘嵩岩.嵌入式车载导航系统的地图数据库设计与实现[J].哈尔滨商业大学学报:自然科学版,2010(23):40-45.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:嵌入式构建 下一篇:最新物业公司下半年工作计划总结 公司物业下半年工作计划(大全20篇)