从第一节可以看出,无论是城市规划管理,还是车辆监控导航,都需要准确的矢量地图。矢量地图是整个导航系统的基础,导航系统的定位、路径寻优、轨迹校正等功能都离不开矢量地图的支持。对于建设数字化地球、数字化城市,矢量地图具有重要的意义。
那么什么是矢量地图?它具有那些优点和属性?如何来生成矢量地图呢?这正是本章所要讲述的内容。
2.1 矢量地图的基本概念
随着计算机的出现和信息论的发展,地图制图逐步由手工绘制过渡到电子化、自动化的阶段,从数字资料自动制图、图形资料自动制图到航空遥感和航天遥感图像的自动制图,电子地图的技术发展非常迅速。不久以前,美国还利用卫星扫描生成全球的三维电子地图。电子地图的应用非常广泛,在海洋、气象、水文、地质、土地利用、地球物理、宇航、测绘、勘探等领域都需要电子地图。20 世纪60 年代,地理信息系统(Geographic Information System,简称GIS)的兴起和迅猛发展更推动了电子地图制图的发展。GIS 是一种专门用于管理地理空间分布数据的计算机信息系统,所以其中的数字电子地图是一个必不可少的部分,在很大程度上决定了GIS 的命运。我国对制图自动化和GIS 的研究起步较晚,近几年,形成一股关于电子地图的研究热潮。
电子地图按照其数据结构的不同,又主要分为矢量电子地图和栅格电子地图两种,栅格电子地图也就是我们平时常见的位图。 矢量地图是指对点阵数据数字地图图像进行跟踪识别得到的矢量数据以后的地图,然后对地图中线状地物如河流、等高线、铁路、公路、等进行恢复,恢复的结果就是一幅矢量地图。在矢量地图上可以方便的进行放大和缩小变换,以及信息的增加删减等修改。
电子地图的这两种实现,各有优缺点。栅格电子地图,主要是生成比较方便,图像比较细致,和人们日常使用的地图类似,容易被用户接受,但是,栅格电子地图数据量比较大,存储不方便,放大过程中会产生失真,数据不是很准确,很难进行全局或者局部校正,更新起来也比较费事。矢量电子地图生成相对麻烦,但是优点也十分突出:数据经过压缩,数据量小;地图可以随意缩放,缩放过程中不会出现失真;可以对地图进行全局或者局部校正;地图随城市建设的变化进行更新也很方便。例如成都市地图,按照大约1:200000 的比例尺转化成24 位位图,大小约为15M,而我们生成的矢量地图数据库,只有137K,近3000 条道路(矢量边)的矢量文件大小只有约61K。可见矢量电子地图的优越性
2.2 GPS 实验室开发的矢量地图与GIS 系统
绝大多数GIS 系统中使用的地图都是以矢量地图作为其表现形式的。国内目前矢量地图常用的生成方式有两种,一种是用数字化仪从纸质地图中提取,另一种是从点位图中利用模式识别和图像处理的有关理论进行识别和提取。生成一个准确而完备的矢量地图要花费大量的人力和财力,也比较耗时。例如用数字化仪生成一个中等规模城市的矢量地图,大约需要一个月的时间。如何以最小的代
价生成一幅实用的矢量地图,并在此基础上构造一个高效实用的GIS 系统,是中国科学技术大学GPS 实验室一直在研究的一个课题。
GPS 实验室从1993 年以来,一直在从事GPS 定位、监控与导航和GIS 系统的研究。无论是GPS 定位、车辆监控还是导航,都离不开GIS 系统的支持。在GIS 系统方面,已经有过多个版本,分别是在DOS、WIND31 和WIN95 下开发的。经过许多人多年的努力GPS 实验室形成了一套有实验室特色的,而且比较成熟的GIS 软件和GIS 环境矢量地图生成平台。下面,就以此为背景,介绍一下GPS 实验室开发的矢量电子地图生成平台和GIS 系统。
2.2.1 系统组成
所谓的GIS 往往是一个比较庞大的系统,而且包含了各类数据的管理、决策模块,是一种针对性比较强的系统;对于不同的用户,往往需要对数据有不同的操作、管理、决策。但是它毕竟是一个以地理空间分布数据为基础的系统,所以有一个因素不能少,那就是电子地图,它为系统提供最基本的地理信息。

如何来组织一份矢量地图呢?数据是矢量电子地图的核心,矢量电子地图可以看作由点、线、面这三种几何对象以及它们的属性数据构成的数据的集合,所以引入了地图矢量库和地图数据库这两个概念。矢量库是一组图形描述数据,保中国科学技术大学硕士论文 矢量地图综10存了地图的几何数据;数据库则是一组属性描述数据,保存地图各种几何对象的属性数据,二者之间通过地物对象的序号建立索引关系。如图2.2.1 所示。
一副地图可以看成是由点、线、面三种几何图形构成的。点是指单位、建筑物之类的地物实体;线是指道路、铁路之类的实体;而区划这类的实体就可以用面来表征。依照传统的习惯,把点、线、面这三类地物按照从上到下的顺序排列。
生成、编辑矢量电子地图的过程就是生成、编辑地图矢量库和数据库的过程,下面我们来详细介绍一下这两个最重要的库。
2.2.2 地图矢量库

矢量库定义出几何结构的位置形状信息。点标志比较简单,只是一个点;面标志对应的几何结构就是一个多边形,也比较简单;线标志则包含较多的内容,要相对复杂一些。下面主要介绍一下与线标志有关的一些定义,也就是道路的有关定义:
定义1:矢量边。是一些点的坐标的集合,表征着一条连续的折线。它有以下的性质:
a.点的排列顺序决定了折线的行进方向,决定了折线的形状和位置;
b.只有两个端点可以属于其它矢量边。
定义2:大节点、小节点、节点。大节点是矢量边的端点;小节点是指矢量边除端点之外的内部点;大节点和小节点统称节点。
定义3:弧。一条弧就是一条矢量边,是若干个节点的集合。组成弧的节点是顺序排列的。
定义4:路。路是若干条弧的集合。如图2.2.2 所示。我们以后所有的工作都是针对以上定义的几种结构来展开的。
2.2.3 地图数据库
地图数据库中包含了各种地物的属性数据。
对于点地物,需要知道的属性有:类型、位置、名称、显示图标、显示级别等;
对于线地物,需要知道的属性有:类型、位置、形状、名称、颜色、显示宽度、显示级别等;
对于面地物,需要知道的属性有:类型、位置、形状、名称、颜色等;
上面提到的各种地物的属性数据中都有一项——类型,也就是它所属的组(Group)。组,定义出了某一批地物的缺省属性,是一些具有相同或相近属性的同类地物的集合。
整个数据库的层次如图2.2.3 所示。

地图的数据库有四个层次,最上层当然是地图数据库,它由三个部分(Division)构成的,也就是点、面、线三大类地物;每个部分又由若干个组(Group)构成;每个组又由若干个地物实体(Entity)构成。实体,就是点、面、线这些类的地物个体。这种分层结构使得配置地图数据库时显得特别的方便。
2.2.4 面向对象的数据模型
采用面向对象的数据模型可以最自然地描述现实世界,将实体抽象为对象,用对象中的数据成员和成员函数模拟客观世界及其运动。面向对象的数据模型有很强的扩充性。根据面向对象的数据组织方式,用面向对象的方法设计了一个稳健的,易于扩充和修改的数据库模型。如图2.2.4 所示。
地图对象类包含地图的属性和组成成分,属性表示地图的基本特征:地图名、比例尺等等,在这个类的层次上我们可以定义地图的基本操作,例如放大、缩小、漫游等。从这个对象的关系图来看,在实现的时候,地图的数据库与矢量库并不是完全独立的,相反,数据库实际上包含了矢量库。也可以这么看,矢量库实际上是一个几何对象集,提供某些地物实体的几何数据。
地物实体(Entity)包含了基本地理对象的属性和空间几何信息,指明了基本地理对象的基本特征和组成的几何对象,几何对象包含几何对象的地理位置和相互关系的信息,可以分为纯几何对象类(如点、多边形等)和拓扑几何对象类(如节点、弧等),其中后者是由地图矢量库来提供的。

2.3 交通矢量地图的生成
要生成一副交通矢量地图,首先是生成地图的矢量文件,或者说生成矢量地图的拓扑结构——矢量库。我们采用的是从点位图中识别、生成矢量地图的方式。对从纸制地图扫描得到的点位图进行识别,提取出其中的道路信息,然后将这些道路信息矢量化得到一幅只包含道路信息的矢量文件,将这作为一幅矢量地图的基础。然后,在这个基础上进行编辑、校正,并输入各种地图上的有关数据,生成电子地图的数据库,最终生成一个完整而准确的矢量地图。
如图2.3.1 所示。

下面我们给出合肥市地图生成的实例,来演示地图生成的全过程。



从上面框图和实例中我们可以看出生成一副较完备矢量交通地图,主要包括以下三个步骤:
①彩色地图的道路识别;
②地图矢量化;
③矢量地图的校正和地图信息的添加;
彩色地图的道路识别,就是根据一幅彩色交通地图,利用一定的算法,提取出其中的道路和区域信息,形成一幅黑白位图。这方面的工作更多地属于模式识别和图像处理的范畴。随着研究的发展,已经有很多不同的识别方法取得了不错的效果。这一过程在矢量地图生成的整个过程中也至关重要的,一副效果良好的黑白位图会给后续的处理带来极大的便利。接下去的地图矢量化则是根据得到的线状的黑白位图抽取出有意义的模式特征。矢量化后的地图经过校正和添加地图信息就可以向用户提供非常丰富而准确的信息,很好地应用于我们的监控和导航系统了。
2.4 地图矢量化
在矢量化之前一般要先作一些预处理工作,以减少图像噪声的干扰,保证据的质量。预处理过程主要包括以下几个方面:
①平滑:
所谓的平滑处理是将图像上由于噪声引入的孤立点去掉,将孔洞、缺口、间隙填补上,将小突起删除。平滑处理是预处理的第一步,平滑的结果将影响细化的结果,并最终影响矢量化。
②细化:
所谓的细化,就是将图像上的线条细化成一个象素宽度的线条的处理过程,细化的结果使得线条所在的地方始终保持一个象素宽。对细化的一般要求是:证细化后曲线的连通性,细化结果是原曲线的中心线,细化处理速度快,保留细线端点。矢量化结果的好坏,很大程度上取决于细化算法。
③连接断点:
计算断点之间的距离,如果之间的距离小于给定的误差,则在断点之间连一条直线。
④删除毛刺:主要是删除图像点外细小的分叉。下面将简要介绍一下地图矢量化和地理信息添加这两方面的内容。关于矢量地图的校正,在以后的章节会做更为详细的介绍。
在最终的细化位图上就可以完成图像的矢量化过程。图2.4.2 给出地图矢量化的基本流程:

2.5 矢量地图的编辑

地图矢量化完成以后,可以得到一个包含了所有道路拓扑信息的基本的矢量文件,它只是矢量地图库的一个雏形。在此基础上,要对矢量地图进行编辑,将地图上地物的属性信息输入地图属性数据库中,并确定地图的地理参数,从而生成一个完整而又准确的交通矢量地图。
一幅矢量地图的编辑过程可以用图2.5.1 所示的流程图来表示。可以看到,矢量地图的编辑主要完成以下的几个方面的工作:
编辑GIS 地图数据库;
编辑地图的拓扑结构;
利用已有的部分轨迹记录确定整幅地图的地理参数。
2.5.1 地图数据的结构
数据是地图的核心。一幅完备的矢量电子地图的数据量是很大的,采用分层的数据结构来组织这些数据,最大限度地考虑和满足了用户的需要。地理数据的分层结构如图2.5.2 所示:

其中,矢量电子地图由基本地理对象集(点、线、面状地物集)组成;基本地理对象由几何对象(点、线、面)加上其属性数据组成,几何对象包含地理对象的几何数据,并保持对象间的拓扑关系。
2.5.2 矢量库的组织
地图矢量库保存了组成地图的线状元素的几何数据,也就是包含了节点、弧和路的信息。它是整个电子地图和GIS 系统的根本,也是实际应用中实现路径寻优、动态轨迹校正等智能决策功能的基础。下面就来看看在这个矢量库中是如何组织这些数据的。如图2.5.3 所示。
如前文所述,弧是节点的集合,路是弧的集合。因此可以把矢量库看成由三个表构成,一个节点的表,每一行表示一个节点,X、Y 坐标组成这个表的两个列;一个弧的表,它的每一行表示一条弧,它的列是构成这条弧的点;还有一个路的表,它的每一行表示一条路,构成这条路的所有的弧组成各个列。
另外,对于一个GIS 系统,不可或缺的功能就是根据地理空间信息进行一些决策,例如搜索两个给定点之间的最优路径。在前面的讨论中,可以看到节点、弧、路之间的关系是很密切的,因此平台提供充分的机制,使得它们之间能够顺利的相互访问。

2.5.3 矢量地图的编辑
主要包括地图的整体操作和地图上地物信息的编辑。地图的整体操作包括:地图的拼接和地图的平移。这两个功能是整个GIS和地图平台中非常重要的功能。因为一幅纸制地图往往是很大的,由于条件的限制,很难把地图全部一次扫描、处理完成,一般是将地图分成几个部分,分块扫 描处理,得到这几块小图的矢量文件,然后再将这几块矢量文件合并起来;地图拼接完成的就是这个功能。之后要将拼接图调整到合适的位置,然后将其中有用的信息加到目标图上,这就需要对地图进行整体的平移。
地图上地物信息的编辑包括:路的操作(定义,删除)、矢量边的操作(添加、删除、弧的整体调整)、节点的操作(节点的添加、删除、合并、拆分)、区域的操作(定义、调整、删除)。这些都涉及地图矢量数据库中各种拓扑结构的调整和它们之间的相互关系,对于整个矢量地图具有重要的意义,也是整个GIS系统和地图平台最重要的功能。


