0前言
随着社会的发展需求与技术的进步,地图已从传统纸质媒介扩展至电子、互联网以及移动端等不同载体,地图表达的内容与形式得到了很大的丰富。同时随着测绘技术发展,各类数据采集、加工、生产技术日新月异,每年各类地理信息成果数据不断增加,更新周期不断缩短,这些海量数据为各类地图生产提供了丰富的资料,而就目前的生产流程而言,原始数据到地图成品的过程中,由于各个数据源的图形或属性等的不匹配,还需要花较大的精力进行人工处理,现已成为地图生产中的瓶颈。因此需要建立相关流程以及配套技术,实现各类原始数据的有效融合与快速提取,使其能符合各类制图需求,畅通数据与地图制图之间的快速通道,提升信息化制图水平。
1分类分级与符号化
空间地理数据是以点、线、面及属性表形式储存的,在进行地图设计时,首先需对各类数据资料进行分类、分级等属性预处理,这是前期数据处理的重要一环,通过合理的分类分级,可以实现点、线、面相应的符号批量可视化转化,以符合地图表达的需要。不同的地图产品根据设计要求,采用不同的分类分级标准,即便同样的数据内容,图面效果也是截然不同的(见图1)。目前数据建设时通常采用属性编码方式进行分类分级设定,因此需要对数据编码按要求进行定义,使其能满足各类地图产品符号化要求。
利用同样数据,本图为《上海市郊旅游地图》的符号设计以及图面效果。
利用同样数据,本图为《虹桥机场应急救援综合方格网编制项目》的符号设计及图面效果。
(图1)
2 属性编码
现有的地图产品所需数据常会涉及多个数据源,由于分类、分级所采用的方法和详细程度不同会产生较大差异,因此将这些数据整合为满足制图需要的“原料库”,需要建立不同数据属性间的映射关系,同时制定相应的处理流程和批量数据整合技术。
以“天地图.上海”矢量数据建设为例,需要用到上海市测绘院公开版地图数据库、城市空间地理要素数据和城市空间地理框架数据等多个数据来源(见表1),只有对用到的数据都按规范要求进行统一的分类分级,并按要求提取整合成“天地图.上海”数据资料集,才能满足《地理信息公共服务平台 电子地图数据规范》中对配图要求。
表1 资料来源
目标库 |
数据库整合来源 |
天地图·地图目标数据集 |
城市空间地理框架数据库 |
城市空间地理要素数据库 | |
公开版地图数据库 | |
门址库 |
2.1建立映射关系
首先要根据天地图.上海数据要素分类分级标准,建立相应的代码表,同时整理不同来源的数据属性编码,建立与之对应的映射关系表。表2为《 “天地图.上海” 数据代码与标准分类》(部分道路),表3为《公开版地图数据库的分类代码》(道路部分),通过比较不难发现,两者的差别是比较大的,但通过数据分析,通过编号可以建立起数据间的映射关系,表4为部分道路要素的各类数据的映射关系表。其中FEATURETD为天地图数据要素代码,图面配置时将根据此码进行统一符号与注记设置。通过建立对应表,除了能实现不同数据之间的快速转化外,还能较清晰的分析出数据中的不足和需补充部分。
表2 《 “天地图.上海” 数据代码与标准分类》
目标数据分类 |
目标要素层 |
数据描述 |
地物名称 |
地物代码(FEATURETD) |
道路 |
KROALN |
道路线 |
建成国道 |
420101 |
建筑中国道 |
420102 | |||
高速公路 |
420704 | |||
建筑中高速公路 |
420705 | |||
建成省道 |
420201 | |||
建筑中省道 |
420202 | |||
建成县道 |
420301 | |||
建筑中县道 |
420302 |
(表3)《公开版地图数据库的分类代码》
大类 |
一级分类(表名) |
二级分类 |
三级分类 |
分类编码 |
交通(L) |
交通(线)(LRFL)(LL0000) |
城区道路(LL0200) |
城市快速路 |
LL0205 |
一级街道 |
LL0201 | |||
二级街道 |
LL0202 | |||
三级街道 |
LL0203 | |||
四级街道 |
LL0204 | |||
郊区道路(LL0500) |
国道 |
LL0505 | ||
高速公路 |
LL0506 | |||
一级公路 |
LL0501 | |||
二级公路 |
LL0502 | |||
三级公路 |
LL0503 | |||
四级公路 |
LL0504 |
表4 《地物代码映射关系表》(部分)
数据描述 |
地物名称 |
地物代码(FEATURETD) |
数据名称 |
数据库代码RANK |
道路线 |
建成国道 |
420101 |
国道 |
LL0505 |
建筑中国道 |
420102 |
缺 |
| |
建成省道 |
420201 |
不完整 |
| |
建筑中省道 |
420202 |
缺 |
| |
建成县道 |
420301 |
一级公路 |
LL0501 | |
建筑中县道 |
420302 |
缺 |
|
2.2制定作业流程
通过建立目标数据标准代码对应表,会整理出有部分数据的属性分类无法满足规范要求,需要重新进行加工赋值,此时要根据标准,选择一定的算法或规则,运用相应流程或研发一些工具进行批量性的处理,以天地图.上海市级节点数据建设为例,以下为其作业流程图。
图1 作业流程图
Ø 多源数据准备:包括基础地理信息数据库、城市空间地理框架数据库、公开版地图数据库及门址数据库,格式有*.SHP、*.GDB、*.MDB、*.DWG;
Ø 数据转换:本次作业环境为EPS2008软件,均需转换为EPS2008软件下*.EDB格式数据;
Ø 数据处理:主要包括对根据文件大小的分块处理、依据相关标准增补数据及区分数据类型,并最终根据类型赋予天地图标准代码;
Ø 数据检查:主要是根据数据的需求及处理的情况进行的一系列自动与人工的检查;
Ø 成果输出:输出标准格式(*.shp)的天地图.上海目标数据集,用以矢量地图瓦片生成。
2.3设计作业方式
在作业流程的基础上,针对每个数据要素的特征,需要进行作业方式细化设计,并形成具体的作业指导书,尽可能的采用工具化的批量处理,提高效率与质量。
以道路属性为例,要求将城市空间地理框架数据库中的道路面处理成与公开版数据库一致的高速公路(420704)、城市快速路(含高架路)(430200)、国道(420101)、省道(420201)、县道(420301)及县道以下(000999),括号后数字为添加在FEATURETD中的标准码,具体方式如下:
Ø 利用公开版地图数据库中的道路中心线属性分类对道路面进行匹配,完全匹配一致的,直接按分类赋码。
Ø 对于剩下的道路,将中心线放宽(buffer处理),再次匹配,将匹配后结果记录一个临时码’A’,对于记录为’A’的数据,按国道、省道、县道依次进行判读,去掉因buffer产生的冗余数据,按级别高低进行FeatureTD码的赋值。
Ø 对于匹配后缺少的道路面,按最新影像图的路宽(1:500比例尺下)进行人工制作,路口的处理按原技术标准,并在FeatureTD中添加相应要素代码。在补道路面的同时,根据此数据对街区面(Block_A)进行修改,确保街区面与道路面吻合。
通过以上步骤,80%以上的道路能够进行批量的分类赋值,剩下不足20%需要人工干预,能较快的完成任务要求,同时道路线与道路面的一致性得以保障。
3数据一致性
在地图生产中,涉及到的多个数据源,这些数据由于作业要求与周期的不同,在解决了属性的一致性后,还可能存在图形、拓扑关系等方面的不统一,因此在数据前期整合时,要把这些问题一并处理,使目标数据集满足制图要求。
3.1制定标准
当不同来源的数据发生矛盾时,应根据地图用途制定关系矛盾时处理的原则,确定判断依据与采用标准,一般现势性强、精度高、内容完整的数据需优先考虑,具体就天地图.上海数据建设而言,虽然公开版地图数据库的精度不如其他数据库,但考虑到公众需求更侧重于现势性,而非精度,因此以公开版地图数据库的数据为优先。
3.2匹配与整合
类似属性表的匹配与赋值要求,图形要素间的拓扑关系检查处理也要根据各数据的特征进行。目前,采用清华三维EPS软件和ArcGIS自带的功能模块均可实现,前提还是需对数据的深入分析。
以绿地与建筑物关系为例,我们将基础地形数据库中的绿地以公开版地图数据库中的范围线和属性为参考进行裁切、赋值,同时进行绿地与建筑物的拓扑关系处理。
下面分别是采用两种方式进行的批量数据处理:
Ø ESP环境下通过调用脚本的处理;
Sub OnClick()
'添加代码
SSProcess.ClearSelection
SSProcess.ClearSelectCondition
SSProcess.ClearSelectConditionGroups
SSProcess.SetSelectCondition "SSObj_Type", "=", "AREA"
SSProcess.SetSelectCondition "SSObj_Code", "=", "211000,624000,611500,623100,373100,338100"
SSProcess.SelectFilter
geoCount = SSProcess.GetSelGeoCount()
For i=0 To geoCount-1
geoID = SSProcess.GetSelGeoValue( i, "SSObj_ID")
SSProcess.GetObjectFocusPointgeoID, x, y
SSProcess.CreateNewObj 0
SSProcess.SetNewObjValue "SSObj_Code", "211200"
SSProcess.AddNewObjPoint x, y, 0, 0, ""
SSProcess.AddNewObjToSaveObjList
SSProcess.LockSelGeoPointi, 0
Next
SSProcess.ClearSelection
'清空选择条件
SSProcess.ClearSelectCondition
'设置选择条件
SSProcess.SetSelectCondition "SSObj_Type", "=", "AREA"
SSProcess.SetSelectCondition "SSObj_Code", "=", "911000,
912000,913000,914000,921000,922000,923000,924000,925000,
931100,931200,932100,933000,934000,935000,936100,937200,
937300,937400,937500,938100,941000,942000,943000,944000,
952000,953000,954000,955000,962100,962200,963100,964300,
971000,972000,973000,974000,975000,976000,977100,977200,
978000"
SSProcess.SetSelectCondition "<Close>", "=", "1"
'执行选择过滤
SSProcess.SelectFilter
geocount = SSProcess.GetSelGeoCount
For i=0 To geoCount-1
polygonID = SSProcess.GetSelGeoValue( i, "SSObj_ID" )
ids = SSProcess.SearchInnerObjIDs(polygonID, 0, "211200", 0)
If ids <> "" Then
SSProcess.DelSelGeoi
end if
next
SSProcess.ClearSelection
<!--[if !supportLists]-->Ø <!--[endif]-->在Arcmap环境下,通过CLIP与Spatial Join工具实现建筑物与绿地的拓扑关系处理(见图2)
图2 建筑物与绿地的拓扑关系处理
比较两者,清华山维ESP软件能较灵活的运用脚本方式达到批量处理效果,但数据属性可能会有所丢失,而利用ArcToolbox中各种功能组合步骤比较繁琐,但运行稳定性强,数据不易丢失,在需求明确的情况下,可采用ArcEngine进行集成,开发批量处理的小工具,提高处理效率。
4 结语
天地图.上海的数据建设覆盖全市范围,涉及到几大数据库资源,通过本次建设,对各类数据根据目标需求的处理整合流程进行一定探索,并形成了一些技术路线与方案,这些经验也运用于之后的地理实体、地名地址建设,以及地理国情普查的国情要素数据建设中。
参考文献
[1]《多源空间数据融合技术》李建雄,测绘出版社,2008年11月。
[2]《GIS空问数据与地图制图融合技术》万自霞&沈佳洁,测绘与空间地理信息,2010年第5期
[3]《数据可视化》Julie Steele& Noah lliinsky,机械工业出版社,2011年6月