第33卷第2期
2008
年3月
测绘科学
Science of Surveying and M app ing
Vol 133No 12
Mar 1
地图制图系统数据库存储结构设计
杨 勇, 李 霖, 郑新燕
①
②
②
(①华中农业大学资源与环境学院, 武汉 430070; ②武汉大学资源与环境科学学院, 武汉 430079)
【摘 要】当前, 用成熟的商业数据库管理海量的空间数据已成为当今GI S 和地图制图软件的主流, 在作者开发
的地图制图系统中, 将所使用和处理的数据分为地理数据、制图辅助数据和地图数据三类, 本文在分析三类数据特点的基础上, 详细介绍了各类数据在数据库中的存储结构, 特别介绍了如何使用O racle 中的大对象数据类型存储坐标数据, 使其该数据库引擎达到功能与效率的统一。【关键词】地图制图; 数据库; GI S; 存储结构【中图分类号】TP311; P208 【文献标识码】A 【文章编号】100922307(2008) 0220137204DO I:1013771/j 1issn [***********]1047
1 引言
经过多年的发展, GI S 历了以下几个阶段:第一阶段, 据; 第二阶段, 性数据; 第三阶段, 据和属性数据, 存储; 第四阶段, 基于对象关系模型在数据库中按面向对象的方法存储空间坐标数据和属性数据, 显然, 最后一种方式逻辑性和结构性更强。在地图制图系统中, 需要处理和存储三类数据:第一类为地理数据(也称为空间数据) , 它是地图制图的原始数据, 是对客观显示世界的线划表示, 它没有宽度, 没有样式, 没有标识, 它又分为空间坐标数据和属性数据; 第二类为制图辅助数据, 主要包括符号库、字体库、符号配置规则、字体配置规则等数据。第三类为地图数据, 它是地理数据经过符号化, 配置注记, 解决冲突等制图操作以后得到的数据, 即是制图成果数据, 主要包括空间数据、制图图形数据、符号关联数据及注记数据, 整饰数据几类。其中, 地图数据是地理数据在制图辅助数据的指导和约束上得到的。本文将依次介绍这三种类型数据的存储结构形式。
类型
主要要素
面状、线状河流、渠道、面状湖泊、水库、海岸线、各种滩地等
不依比例水库、瀑布、泉、井、蓄洪区范围线、点状岛屿、各种礁等面状居民地点状居民地铁路路线及附属物公路、其他道路及附属物境界及行政区划境界附属物
沼泽、盐田、水中滩、雪被、沙漠、戈壁等
等高线、等深线、高程点、三角点、冲沟、陡石山、火山、溶斗等
HydNT 线、面
水系
HydLK 点、线
居民地铁路公路境界与政区
RESPY RESPT 面点
RA I L K 点、线ROALK 点、线BOUNT 线、面BOUPT
点
TERNT 线、面
地形
TERLK 点、线
其他要素OT HNT 线、面自然保护区、长城等辅助要素AT NLK 点、线山峰名、散列地名中轴线等
2 地理数据的存储
211 地理数据内容分析
地理数据来源于对实地测绘数据的数字化跟踪结果, 它是按照比例尺和区域分幅存储, 在单一分幅中, 又按照地物类型和几何属性分层存储, 每一层中存储若干个地物对象的空间数据和属性数据。对同一比例尺而言, 全国地理数据的分层的形式是统一的, 表1中给出了全国1∶25万基础地理信息数据的分层方法(来源于国家基础地理信息中心网站) 。
作者简介:杨勇(19802) , 男, 江西吉安人, 地图学与地理信息系统博士, 华中农业大学资源与环境学院讲师, 现从事地理信息系统理论与方法研究。E 2mail:yy04gis@21cn1com 收稿日期:2007201208
基金项目:国家测绘局基金项目([1**********]31) , 数字地图制图知识工程
从表1中可以看出, 地理数据依据要素类型和几何类型的不同被划分为21个图层。在单一图层中, 地物的几何类型和包含的属性项相同。212 地理数据存储结构
针对上述的地理数据内容, 以及O racle 数据库的存储方式以及它所提供的O racle S patial 空间插件对空间数据的支持, 我们给出了如下的层次型面向对象的地理数据存储结构。
O racle 中, 一个数据库对象中包含若干个方案(用户) , 每个方案中有表集合、索引集合、视图集合、同义词集合、序列集合、簇集合、类型集合
图1 地理数据存储结构
等, 在本系统中, 主要用到表集合来存储地理数据, 表中又
包含若干个记录。这样我们用方案对应于图幅, 表对应于图层, 记录对应每个地物, 如图1所表示:213 空间数据的存储方式
按照面向对象的思想, 每条记录存储一个地物, 包括它的一般属性和空间属性, 即空间坐标。可以用两种方法存储空间数据:第一种方法是借助O racle 提供的支持空间数据类型的插件O racle Spatial 中的数据结构类型
831测绘科学 第33卷
MDSYS 1S DO_GE OM ETRY, 其定义如下:
CRE ATE TYPE S DO_GE OM ETRY AS OBJECT {S DO_GTYPE NUMBER, S DO_SR I D NUMBER, S DO_P O I N T S DO_P O I N T_TYPE, S DO_E LE M _I N F O MDSYS 1S DO _E LE M _I N F O _ARRAY,
S DO _ORD I N ATES MDSYS 1S DO _ORD I N ATE _AR 2RAY};
其中, S DO _GTYPE 说明该空间对象的类型; S DO _SR I D 记录图形的坐标系统; S DO_P O I N T 存储点对象坐标; S DO_E LE M _I N F O 为变长数组, 每三个数为一个单元, 用于解释坐标是如何存储在S DO _ORD I N ATES 中的; S DO _ORD I N ATES 为变长数组, 元素类型为NUMBER, 用来存储组成空间对象边界的点坐标。用这种方式存储空间数据的优点是结构性和对象性强, 同时可以利用O racle Spatial 提供的空间索引。缺点是存取速度慢, 因为访问它的所有内容需要解析多个数组, 而O racle 提供的访问数据库的接口对数组的解析需要花费很多的时间。
第二种方法是利用O racle BLOB, 型为BLOB 的字段中, , 再按规则取出即可, 这种方法的缺点恰恰是第一种方法的优点, 而其优点是读取速度极快, 这恰恰弥补了第一种方法的缺点。
综合上述两种方法的优缺点, 我们将空间数据按两种方法分别存储为两个字段, 其字段名分别为S HAPE 和SHAPE_BLOB, 当需要读取空间数据时, 访问大对象类型字段SHAPE_BLOB, 当要用到空间索引时, 对SHAPE 字段进行操作。这样做虽然浪费了存储空间, 但考虑到现在的硬盘等存储器容量大, 并且价格便宜, 牺牲空间换取功能效率是值得的。这样, 每个图层表的字段设置如表2所示。
图2 图元和符号库组织结构
图元代码为内外部关键字进行关联, 他们的存储关联关系
如图3所示
。
3 符号库存储结构
符号配置规则用一个表进行存储, 其表结构如表2
所示:
表2 符号配置规则表结构
符号配置规则表优先级值(Number )
符号代码(Number )
地物国标码(Number )
表2 图层表字段设计
字段名
I D
字段类型
NUMBER (惟一标识) NUMBER 或VARCHAR2
属性一……属性N
SHAPE SHAPE_BLOB
……
NUMBER 或VARCHAR2MDSYS 1S DO_GEOMETRY
BLOB
当对一个图层配置符号时, 首先将图层按国标码分为
若干子图层, 再按优先级顺序从该表中选取含有该图层中的国标码的所有记录, 从记录中获取符号代码, 依据符号代码再从符号库中获取符号参数, 按优先级从高到低依次对各类地物配置符号。从而在符号化的同时解决了各类地物的绘制顺序问题。值得一提的是, 为了实现一些特殊的制图要求(如道路网中不同等级道路相交时, 交点处融合的效果) , 一个地物可对应多个符号。312 字体数据组织
与符号数据类似, 字体数据部分分为字体参数库和字体配置规则。相对与符号来说, 字体参数描述比较简单, 可以用一个表来存储, 结构如表3所示:
表3 字体属性表结构
属性名称属性类型备注字体代码字体高度字体宽度字体名称字体颜色字型
数值数值数值字符数值数值
字体惟一代码(表的关键字) 单位为0101mm 单位为0101mm 如“宋体”, “等线体”
依据图式, 主要有黑色、兰色和棕色有“直立”、“左斜”和“耸肩”三种
3 制图辅助数据存储结构
制图辅助数据包括符号和注记两个部分。其中符号部
分包括符号库和符号配置规则, 注记部分包括字体库和字体配置规则。311 符号数据组织
在本系统中, 符号库有三层结构:符号库、符号和图元。符号分为点线面三种, 其中面符号层次稍高于点符号和线符号, 与点符号和线符号间存在着聚合关系。点符号和线符号由点、线、面图元组成, 其具体属性请参阅参考文献[2]。图元是构成所有符号的图形基础。符号库和图元组织结构如图2所示:
由此, 我们设计8个表来存储一个符号库, 表名及含义分别为P O I N TG U (点图元) , L I N EG U (线图元) , ARE 2AG U (面图元) , P O I N TSY MBOL (点符号) , L I N ESY MBOL (线符号) , ARE ASY MBOL (面符号) , MSPE N (画笔参数表) , MS BRUS H (画刷参数表) 。各个表中,
以符号代码或
与符号配置规则中一个条件就可确定一个符号相比, 字体配置规则比较复杂, 因为同一类型(国标) 的地物, 字体的大小随着该地物的等级而变化, 即一个字体的约束于多个条件, 而且这些条件有时并不等同于该地物某个属性值的全部, 而是要从某个属性值的某一位或几位的值来确定。例如, 在1∶25万地形图中, 单线河流分为六级, 不同级别所用字体大小不同, 其国标码(G B ) 都为21011, 而级别信息来自于属性HydC 的最后一位的数值。为此, 我们用四个参数描述一个条件, 即:属性名称, 取值开始位, 取值结束位, 对应值, 每条字体规则最多设置5个条件。由此, 字体规则表结构如表4所示:
第2期 杨 勇等 地图制图系统数据库存储结构设计
表4 字体规则表结构
属性名称字体代码优先级图层类型使用条件
个数条件1属性名条件1取值开始位置条件1取值结束位置条件1取值条件2属性名
……
属性类型备注数值数值数值数值字符数值数值
字符字符
符合该条件时, 条件一指定字段指定位置的对应值
以下为另外四个条件的描述, 方式同条件一
作为字体表的外部关键字
由地物的优先级派生, 解决注记压盖时作为参考图层类型标识
由图式规定, 确定该字体所需要的条件, 《=5
条件一对应与地理数据库表中的字段名
属性名称
DEV I CE I D PEN_DW PE NSTY LE PEN_DW PENW I D TH
931
号图形序列(红色点在折线和折线多边形中表示节点, 在圆
中表示圆心和圆上一点) 。
符号图形的数据分为两类:第一为图形数据, 即坐标点数组, 第二类为绘制属性数据, 包括画笔、画刷属性和圆长短半径。由于图幅中使用相同绘制类型的对象很多, 如果重复存储相同的绘制属性显然会浪费比较多的存储空间, 为此, 我们以图幅为单位, 维护一个绘制属性结构表, 通过惟一标识符, 确定各个符号图形所用的绘制设备, 该表(DRAWDE V I CE ) 结构如表5所示:
表5 绘制属性结构表
属性类型数值数值数值数值数值数值
备注设备I D (主键) 画笔样式画笔宽度画笔的其他属性画刷样式画刷颜色画刷纹理样式短半径长半径
……………………
LBSTY LE LLONGRAD I U S LSHORT RAD I U S
, , 中定义的所有条件进行对比, 如果全部符合, 则为该地物的注记配置规则所对应的字体。
4 地图数据存储结构
地图数据包括4个部分, 第一部分为地理数据, 第二部分地物与符号的对应信息, 第三部分为符号图形数据, 第四部分为注记数据。其中, 地理数据作为地图数据的基础被带进地图数据中, 它的存储方式与第1节中介绍的相同。411
地物符号对应信息存储
一个图层被符号化时, 是分成了若干个子图层, 每个子图层再配上若干个符号完成的。所以地物与符号之间通过子图层来联
图4 地物符号对应图系的, 如图4所示:
为此, 为每个图层设计两个表, 假设图层名为Layer 2Na me, 则第一个表名为Layer Na me_S, 该表记录该图层中的子图层信息, 第二个表名为Layer Na me_SP, 记录地物与子图层的联系信息, 即哪个地物属于哪个子图层。第三个表名为Layer Na me_D, 记录该图层中所用到的符号信息。412 符号图形数据的存储。
符号化的结果数据称为符号图形, 它是地理数据和符号结合的产物, 是该制图系统的图形基础, 它的存在能加快系统的绘图速度, 而且施加于其上的编辑操作能改变符号化后的图形细节, 达到一些特殊的制图效果。针对地图图形的特点, 将符号图形划分为种基本类型, 即圆、线和多边形。
所有复杂的图形都可以分解为这三种图形。如图5所示:
在一个图层中, 符号图形的坐标数据量非常大, 如果象存储绘制属性一样在表中每个单独存成一行, 那么当读取符号图形时, 系统与数据库的I/O交换量将十分巨大, 速度将十分缓慢。为此, 本系统中将全图的符号图形存储在一个表中, 以图层名为标识, 用二进制大对象BLOB 存储具体的坐标数据。
在属性SY MF I G URE BLOB 中, 以64位字节为单位, 以该图层中用到的符号为第一层循环标志, 该符号所对应的子图层中的地物对象为第二层循环标志, 以地物对象中所包含的符号图形为第三层循环标志, 以每个符号图形的点作为第四层循环标志进行存储, 如图6所示:
图6 符号图形数据存储格式(每个矩形框代表一个层次的循环)
413 地图注记数据存储
注记是对图形的文字标示, 按所标示的图形几何类型分为点状注记, 线状注记和面状注记。但无论是何种注记, 目的都是将文字字符串摆放在合适的位置, 结果无非是两种:一是字符串挨在一起, 此时, 字符串只有一个定位点, 既第一个字符的左上角, 如图7a; 二是字符串分隔开来, 此时, 字符串有N 个定位点, 分别位于每个字符的左上角, 如图7b 和7c 。所以, 注记分为两个层次, 一是注记整体, 表示对一个地物所标示文字的整体信息, 二是注记细胞, 对应注记整体中的有一个定位点定位的字符串对象。注记整体是由若干个注记细胞组成的。
注记信息分图层存储, 每个图层的注记用两个表存储, 假设图层名为Layer Na me, 则两个表的表名分别为Layer 2Na me_Anno 和Layer Na me_AnnoCell 。其表结果如表6和表7所示:
图5 符号图形示例
在图5a 中用境界符号符号化线状地物以后, 得到一串
圆和线顺序排列的符号图形序列, 在图5b 中, 用灯塔符号符号化点状地物后, 得到由六条线和一个多边形组成的符
041测绘科学 第33
卷
5 结束语
本文详细介绍了基于O racle 数据库的地图制图系统的
数据库结构设计, 系统中充分利用了O racle 数据库提供的O racle Spatial 空间插件和二进制大对象数据类型, 达到了功能与效率的统一。同时将系统中数据分为三类存储, 其存储结构清晰, 方便管理。目前, 基于该数据库结构的地图制图系统已在陕西测绘局和国家基础地理信息中心进行了实验性生产, 结果表明系统运行稳定, 成图质量高, 速度快, 特别是系统与数据库数据交互效率高。
参考文献
[1]O racle 公司1oracle 817s patial guide [S].2000291[2]李志涛1地图制图系统中组件技术的应用与实现
[D].武汉:武汉大学, 20051
[3]毋河海1[M].北京:测绘出版社,
19911
[]1地汉:武汉大学出版社,
21, 等1动态数据库模型的研究与应用[J ].测
绘科学, 2006, 31(1) 1
[6]田增平, 周傲英, 施伯乐1适合地图数据库应用的可
扩充数据模型研究[J ].计算机工程, 1997, 23(4) 1[7]祝国瑞, 郭礼珍, 尹贡白, 徐永利1地图设计与编绘
[M]武汉:武汉大学出版社, 20012101
[8]于冬梅, 董罗海, 张力果1数字地图制图理论方法与
应用[J ].地理信息科学, 2003, (6) :5271
图7 地物图形和地图注记示意图
表6 注记整体存储表结构
属性类型
ANNO I D 数值ALLANNOSTR 字符ANNOCELLCOUNT 数值
ANNOTYPE 数值SHAPE I D 数组F ONTCODE 数值SER I A LNO 数值
属性名称
备注
惟一标识(主键) 整体字符
含有的注记细胞个数注记类型(点、线或面) 注记对应地物的I D 串字体代码优先级
表7 注记细胞存储表结构
属性类型
ANNO I D 数值CELL I N DEX ANNOCELLTEXT ST ARTX 数值ST ARTY 数值V I E WBACKCOLOR 数值BACKCOLOR 数值ESCAPE ME NT 数值BHAVECOLL I SI O N 数值
属性名称
备注
I D ) 与坐标值定位点Y 坐标值是否显示背景色背景色数值倾斜角度
是否存在冲突标识
The storage 2structure desi gn of mapp i n g system da t aba se
Abstract:Currently, using mature business database t o manage massive s patial data has become the mainstrea m of t oday’sGI S and mapp ing system s 1I n the cart ographic syste m devel oped by the author, the data used and p r ocessed is classified int o three catego 2ries:geos patial data, mapp ing 2assisted data and ma Pdata 1Based on analyzing the characteristics of these three categories, this article intr oduces the st orage structure of each kind of data in detail, es pecially how t o use the big object type in O racle t o st ore data with coor 2dinates, which unifies the functi onality and efficiency of this database 1
Key words:cart ography; database; GI S; st orage structure
①②②
(①College of Res ources and Envir on ment, Huazhong Agricultural University, W u 2YAN G Yong , L I L in , ZHEN G X in 2yan
han 430070, China; ②School Of Res ource And Envir on mental Science, W uhan University, W uhan 430079, China )
(上接第184页) [6]彭飞, 柳重善, 张其善1基于代价函数的组合导航系[2]苏洁, 周东方, 岳春生1GPS 车载导航中的实时地图统地图匹配算法[J ].北京航空航天大学学报, 2002,
匹配算法[J ].测绘学报, 2001, 30(3) :2522256128(3) :26122641[3]王楠, 王勇峰, 刘积仁1一个基于位置点匹配的地图[7]Ochieng W Y, Quddus M , Noland R B 1MAP 2MATCH 2
匹配算法[J ].东北大学学报(自然科学版) , 1999, I N G I N COMP LEX URBAN ROAD NET WORKS [J ].20(4) 1B razilian Journal of Cart ography (Revista B rasileira de [4]谢彩香, 林宗坚, 等1GPS/DR/MM组合导航中的车Cart ografia ) , 2003, 55(2) :12181
辆定位精度研究[J ].测绘科学, 2006, 31(1) 1[8]QuddusM A , OchiengW Y, Zhao L et al 1A Generalma [5]张其善1智能车辆定位导航系统及应用[M].北京:P matching A lgorith m for Trans port Tele matics App licati ons
科学出版社, 20021[J ].GPS Soluti ons Journal, 2003, 7(2) :15721671
D esi gn and i m ple m en t a ti on of an i n tegra ted map ma tch i n g m lgor ith m
Abstract:The paper investigated and realized a integrated map matching algorith m according t o the p rinci p le of point 2based map matching algorith m and weight 2based map matching algorithm 1It used different map matching method at different r oad conditi ons, and als o considered r oad net w ork connectivity 1The matching accuracy is 86%, and matching ti m e is about 0134s at acr oss 1So it can satis 2fy the require ments of vehicle navigati on syste m 1
Key words:GPS; vehicle positi oning; map matching
①①②
(①Chongqing Engineering Technol ogy Research Center for I nfor mati on
Manage ment in Devel 2L I N N a , L I Zhi , WAN G B in
opment, Chongqing Technol ogy and Business University, Chongqing 400067, China; ②Chongqing Geomatics Center, Chongqing 401121, China )
第33卷第2期
2008
年3月
测绘科学
Science of Surveying and M app ing
Vol 133No 12
Mar 1
地图制图系统数据库存储结构设计
杨 勇, 李 霖, 郑新燕
①
②
②
(①华中农业大学资源与环境学院, 武汉 430070; ②武汉大学资源与环境科学学院, 武汉 430079)
【摘 要】当前, 用成熟的商业数据库管理海量的空间数据已成为当今GI S 和地图制图软件的主流, 在作者开发
的地图制图系统中, 将所使用和处理的数据分为地理数据、制图辅助数据和地图数据三类, 本文在分析三类数据特点的基础上, 详细介绍了各类数据在数据库中的存储结构, 特别介绍了如何使用O racle 中的大对象数据类型存储坐标数据, 使其该数据库引擎达到功能与效率的统一。【关键词】地图制图; 数据库; GI S; 存储结构【中图分类号】TP311; P208 【文献标识码】A 【文章编号】100922307(2008) 0220137204DO I:1013771/j 1issn [***********]1047
1 引言
经过多年的发展, GI S 历了以下几个阶段:第一阶段, 据; 第二阶段, 性数据; 第三阶段, 据和属性数据, 存储; 第四阶段, 基于对象关系模型在数据库中按面向对象的方法存储空间坐标数据和属性数据, 显然, 最后一种方式逻辑性和结构性更强。在地图制图系统中, 需要处理和存储三类数据:第一类为地理数据(也称为空间数据) , 它是地图制图的原始数据, 是对客观显示世界的线划表示, 它没有宽度, 没有样式, 没有标识, 它又分为空间坐标数据和属性数据; 第二类为制图辅助数据, 主要包括符号库、字体库、符号配置规则、字体配置规则等数据。第三类为地图数据, 它是地理数据经过符号化, 配置注记, 解决冲突等制图操作以后得到的数据, 即是制图成果数据, 主要包括空间数据、制图图形数据、符号关联数据及注记数据, 整饰数据几类。其中, 地图数据是地理数据在制图辅助数据的指导和约束上得到的。本文将依次介绍这三种类型数据的存储结构形式。
类型
主要要素
面状、线状河流、渠道、面状湖泊、水库、海岸线、各种滩地等
不依比例水库、瀑布、泉、井、蓄洪区范围线、点状岛屿、各种礁等面状居民地点状居民地铁路路线及附属物公路、其他道路及附属物境界及行政区划境界附属物
沼泽、盐田、水中滩、雪被、沙漠、戈壁等
等高线、等深线、高程点、三角点、冲沟、陡石山、火山、溶斗等
HydNT 线、面
水系
HydLK 点、线
居民地铁路公路境界与政区
RESPY RESPT 面点
RA I L K 点、线ROALK 点、线BOUNT 线、面BOUPT
点
TERNT 线、面
地形
TERLK 点、线
其他要素OT HNT 线、面自然保护区、长城等辅助要素AT NLK 点、线山峰名、散列地名中轴线等
2 地理数据的存储
211 地理数据内容分析
地理数据来源于对实地测绘数据的数字化跟踪结果, 它是按照比例尺和区域分幅存储, 在单一分幅中, 又按照地物类型和几何属性分层存储, 每一层中存储若干个地物对象的空间数据和属性数据。对同一比例尺而言, 全国地理数据的分层的形式是统一的, 表1中给出了全国1∶25万基础地理信息数据的分层方法(来源于国家基础地理信息中心网站) 。
作者简介:杨勇(19802) , 男, 江西吉安人, 地图学与地理信息系统博士, 华中农业大学资源与环境学院讲师, 现从事地理信息系统理论与方法研究。E 2mail:yy04gis@21cn1com 收稿日期:2007201208
基金项目:国家测绘局基金项目([1**********]31) , 数字地图制图知识工程
从表1中可以看出, 地理数据依据要素类型和几何类型的不同被划分为21个图层。在单一图层中, 地物的几何类型和包含的属性项相同。212 地理数据存储结构
针对上述的地理数据内容, 以及O racle 数据库的存储方式以及它所提供的O racle S patial 空间插件对空间数据的支持, 我们给出了如下的层次型面向对象的地理数据存储结构。
O racle 中, 一个数据库对象中包含若干个方案(用户) , 每个方案中有表集合、索引集合、视图集合、同义词集合、序列集合、簇集合、类型集合
图1 地理数据存储结构
等, 在本系统中, 主要用到表集合来存储地理数据, 表中又
包含若干个记录。这样我们用方案对应于图幅, 表对应于图层, 记录对应每个地物, 如图1所表示:213 空间数据的存储方式
按照面向对象的思想, 每条记录存储一个地物, 包括它的一般属性和空间属性, 即空间坐标。可以用两种方法存储空间数据:第一种方法是借助O racle 提供的支持空间数据类型的插件O racle Spatial 中的数据结构类型
831测绘科学 第33卷
MDSYS 1S DO_GE OM ETRY, 其定义如下:
CRE ATE TYPE S DO_GE OM ETRY AS OBJECT {S DO_GTYPE NUMBER, S DO_SR I D NUMBER, S DO_P O I N T S DO_P O I N T_TYPE, S DO_E LE M _I N F O MDSYS 1S DO _E LE M _I N F O _ARRAY,
S DO _ORD I N ATES MDSYS 1S DO _ORD I N ATE _AR 2RAY};
其中, S DO _GTYPE 说明该空间对象的类型; S DO _SR I D 记录图形的坐标系统; S DO_P O I N T 存储点对象坐标; S DO_E LE M _I N F O 为变长数组, 每三个数为一个单元, 用于解释坐标是如何存储在S DO _ORD I N ATES 中的; S DO _ORD I N ATES 为变长数组, 元素类型为NUMBER, 用来存储组成空间对象边界的点坐标。用这种方式存储空间数据的优点是结构性和对象性强, 同时可以利用O racle Spatial 提供的空间索引。缺点是存取速度慢, 因为访问它的所有内容需要解析多个数组, 而O racle 提供的访问数据库的接口对数组的解析需要花费很多的时间。
第二种方法是利用O racle BLOB, 型为BLOB 的字段中, , 再按规则取出即可, 这种方法的缺点恰恰是第一种方法的优点, 而其优点是读取速度极快, 这恰恰弥补了第一种方法的缺点。
综合上述两种方法的优缺点, 我们将空间数据按两种方法分别存储为两个字段, 其字段名分别为S HAPE 和SHAPE_BLOB, 当需要读取空间数据时, 访问大对象类型字段SHAPE_BLOB, 当要用到空间索引时, 对SHAPE 字段进行操作。这样做虽然浪费了存储空间, 但考虑到现在的硬盘等存储器容量大, 并且价格便宜, 牺牲空间换取功能效率是值得的。这样, 每个图层表的字段设置如表2所示。
图2 图元和符号库组织结构
图元代码为内外部关键字进行关联, 他们的存储关联关系
如图3所示
。
3 符号库存储结构
符号配置规则用一个表进行存储, 其表结构如表2
所示:
表2 符号配置规则表结构
符号配置规则表优先级值(Number )
符号代码(Number )
地物国标码(Number )
表2 图层表字段设计
字段名
I D
字段类型
NUMBER (惟一标识) NUMBER 或VARCHAR2
属性一……属性N
SHAPE SHAPE_BLOB
……
NUMBER 或VARCHAR2MDSYS 1S DO_GEOMETRY
BLOB
当对一个图层配置符号时, 首先将图层按国标码分为
若干子图层, 再按优先级顺序从该表中选取含有该图层中的国标码的所有记录, 从记录中获取符号代码, 依据符号代码再从符号库中获取符号参数, 按优先级从高到低依次对各类地物配置符号。从而在符号化的同时解决了各类地物的绘制顺序问题。值得一提的是, 为了实现一些特殊的制图要求(如道路网中不同等级道路相交时, 交点处融合的效果) , 一个地物可对应多个符号。312 字体数据组织
与符号数据类似, 字体数据部分分为字体参数库和字体配置规则。相对与符号来说, 字体参数描述比较简单, 可以用一个表来存储, 结构如表3所示:
表3 字体属性表结构
属性名称属性类型备注字体代码字体高度字体宽度字体名称字体颜色字型
数值数值数值字符数值数值
字体惟一代码(表的关键字) 单位为0101mm 单位为0101mm 如“宋体”, “等线体”
依据图式, 主要有黑色、兰色和棕色有“直立”、“左斜”和“耸肩”三种
3 制图辅助数据存储结构
制图辅助数据包括符号和注记两个部分。其中符号部
分包括符号库和符号配置规则, 注记部分包括字体库和字体配置规则。311 符号数据组织
在本系统中, 符号库有三层结构:符号库、符号和图元。符号分为点线面三种, 其中面符号层次稍高于点符号和线符号, 与点符号和线符号间存在着聚合关系。点符号和线符号由点、线、面图元组成, 其具体属性请参阅参考文献[2]。图元是构成所有符号的图形基础。符号库和图元组织结构如图2所示:
由此, 我们设计8个表来存储一个符号库, 表名及含义分别为P O I N TG U (点图元) , L I N EG U (线图元) , ARE 2AG U (面图元) , P O I N TSY MBOL (点符号) , L I N ESY MBOL (线符号) , ARE ASY MBOL (面符号) , MSPE N (画笔参数表) , MS BRUS H (画刷参数表) 。各个表中,
以符号代码或
与符号配置规则中一个条件就可确定一个符号相比, 字体配置规则比较复杂, 因为同一类型(国标) 的地物, 字体的大小随着该地物的等级而变化, 即一个字体的约束于多个条件, 而且这些条件有时并不等同于该地物某个属性值的全部, 而是要从某个属性值的某一位或几位的值来确定。例如, 在1∶25万地形图中, 单线河流分为六级, 不同级别所用字体大小不同, 其国标码(G B ) 都为21011, 而级别信息来自于属性HydC 的最后一位的数值。为此, 我们用四个参数描述一个条件, 即:属性名称, 取值开始位, 取值结束位, 对应值, 每条字体规则最多设置5个条件。由此, 字体规则表结构如表4所示:
第2期 杨 勇等 地图制图系统数据库存储结构设计
表4 字体规则表结构
属性名称字体代码优先级图层类型使用条件
个数条件1属性名条件1取值开始位置条件1取值结束位置条件1取值条件2属性名
……
属性类型备注数值数值数值数值字符数值数值
字符字符
符合该条件时, 条件一指定字段指定位置的对应值
以下为另外四个条件的描述, 方式同条件一
作为字体表的外部关键字
由地物的优先级派生, 解决注记压盖时作为参考图层类型标识
由图式规定, 确定该字体所需要的条件, 《=5
条件一对应与地理数据库表中的字段名
属性名称
DEV I CE I D PEN_DW PE NSTY LE PEN_DW PENW I D TH
931
号图形序列(红色点在折线和折线多边形中表示节点, 在圆
中表示圆心和圆上一点) 。
符号图形的数据分为两类:第一为图形数据, 即坐标点数组, 第二类为绘制属性数据, 包括画笔、画刷属性和圆长短半径。由于图幅中使用相同绘制类型的对象很多, 如果重复存储相同的绘制属性显然会浪费比较多的存储空间, 为此, 我们以图幅为单位, 维护一个绘制属性结构表, 通过惟一标识符, 确定各个符号图形所用的绘制设备, 该表(DRAWDE V I CE ) 结构如表5所示:
表5 绘制属性结构表
属性类型数值数值数值数值数值数值
备注设备I D (主键) 画笔样式画笔宽度画笔的其他属性画刷样式画刷颜色画刷纹理样式短半径长半径
……………………
LBSTY LE LLONGRAD I U S LSHORT RAD I U S
, , 中定义的所有条件进行对比, 如果全部符合, 则为该地物的注记配置规则所对应的字体。
4 地图数据存储结构
地图数据包括4个部分, 第一部分为地理数据, 第二部分地物与符号的对应信息, 第三部分为符号图形数据, 第四部分为注记数据。其中, 地理数据作为地图数据的基础被带进地图数据中, 它的存储方式与第1节中介绍的相同。411
地物符号对应信息存储
一个图层被符号化时, 是分成了若干个子图层, 每个子图层再配上若干个符号完成的。所以地物与符号之间通过子图层来联
图4 地物符号对应图系的, 如图4所示:
为此, 为每个图层设计两个表, 假设图层名为Layer 2Na me, 则第一个表名为Layer Na me_S, 该表记录该图层中的子图层信息, 第二个表名为Layer Na me_SP, 记录地物与子图层的联系信息, 即哪个地物属于哪个子图层。第三个表名为Layer Na me_D, 记录该图层中所用到的符号信息。412 符号图形数据的存储。
符号化的结果数据称为符号图形, 它是地理数据和符号结合的产物, 是该制图系统的图形基础, 它的存在能加快系统的绘图速度, 而且施加于其上的编辑操作能改变符号化后的图形细节, 达到一些特殊的制图效果。针对地图图形的特点, 将符号图形划分为种基本类型, 即圆、线和多边形。
所有复杂的图形都可以分解为这三种图形。如图5所示:
在一个图层中, 符号图形的坐标数据量非常大, 如果象存储绘制属性一样在表中每个单独存成一行, 那么当读取符号图形时, 系统与数据库的I/O交换量将十分巨大, 速度将十分缓慢。为此, 本系统中将全图的符号图形存储在一个表中, 以图层名为标识, 用二进制大对象BLOB 存储具体的坐标数据。
在属性SY MF I G URE BLOB 中, 以64位字节为单位, 以该图层中用到的符号为第一层循环标志, 该符号所对应的子图层中的地物对象为第二层循环标志, 以地物对象中所包含的符号图形为第三层循环标志, 以每个符号图形的点作为第四层循环标志进行存储, 如图6所示:
图6 符号图形数据存储格式(每个矩形框代表一个层次的循环)
413 地图注记数据存储
注记是对图形的文字标示, 按所标示的图形几何类型分为点状注记, 线状注记和面状注记。但无论是何种注记, 目的都是将文字字符串摆放在合适的位置, 结果无非是两种:一是字符串挨在一起, 此时, 字符串只有一个定位点, 既第一个字符的左上角, 如图7a; 二是字符串分隔开来, 此时, 字符串有N 个定位点, 分别位于每个字符的左上角, 如图7b 和7c 。所以, 注记分为两个层次, 一是注记整体, 表示对一个地物所标示文字的整体信息, 二是注记细胞, 对应注记整体中的有一个定位点定位的字符串对象。注记整体是由若干个注记细胞组成的。
注记信息分图层存储, 每个图层的注记用两个表存储, 假设图层名为Layer Na me, 则两个表的表名分别为Layer 2Na me_Anno 和Layer Na me_AnnoCell 。其表结果如表6和表7所示:
图5 符号图形示例
在图5a 中用境界符号符号化线状地物以后, 得到一串
圆和线顺序排列的符号图形序列, 在图5b 中, 用灯塔符号符号化点状地物后, 得到由六条线和一个多边形组成的符
041测绘科学 第33
卷
5 结束语
本文详细介绍了基于O racle 数据库的地图制图系统的
数据库结构设计, 系统中充分利用了O racle 数据库提供的O racle Spatial 空间插件和二进制大对象数据类型, 达到了功能与效率的统一。同时将系统中数据分为三类存储, 其存储结构清晰, 方便管理。目前, 基于该数据库结构的地图制图系统已在陕西测绘局和国家基础地理信息中心进行了实验性生产, 结果表明系统运行稳定, 成图质量高, 速度快, 特别是系统与数据库数据交互效率高。
参考文献
[1]O racle 公司1oracle 817s patial guide [S].2000291[2]李志涛1地图制图系统中组件技术的应用与实现
[D].武汉:武汉大学, 20051
[3]毋河海1[M].北京:测绘出版社,
19911
[]1地汉:武汉大学出版社,
21, 等1动态数据库模型的研究与应用[J ].测
绘科学, 2006, 31(1) 1
[6]田增平, 周傲英, 施伯乐1适合地图数据库应用的可
扩充数据模型研究[J ].计算机工程, 1997, 23(4) 1[7]祝国瑞, 郭礼珍, 尹贡白, 徐永利1地图设计与编绘
[M]武汉:武汉大学出版社, 20012101
[8]于冬梅, 董罗海, 张力果1数字地图制图理论方法与
应用[J ].地理信息科学, 2003, (6) :5271
图7 地物图形和地图注记示意图
表6 注记整体存储表结构
属性类型
ANNO I D 数值ALLANNOSTR 字符ANNOCELLCOUNT 数值
ANNOTYPE 数值SHAPE I D 数组F ONTCODE 数值SER I A LNO 数值
属性名称
备注
惟一标识(主键) 整体字符
含有的注记细胞个数注记类型(点、线或面) 注记对应地物的I D 串字体代码优先级
表7 注记细胞存储表结构
属性类型
ANNO I D 数值CELL I N DEX ANNOCELLTEXT ST ARTX 数值ST ARTY 数值V I E WBACKCOLOR 数值BACKCOLOR 数值ESCAPE ME NT 数值BHAVECOLL I SI O N 数值
属性名称
备注
I D ) 与坐标值定位点Y 坐标值是否显示背景色背景色数值倾斜角度
是否存在冲突标识
The storage 2structure desi gn of mapp i n g system da t aba se
Abstract:Currently, using mature business database t o manage massive s patial data has become the mainstrea m of t oday’sGI S and mapp ing system s 1I n the cart ographic syste m devel oped by the author, the data used and p r ocessed is classified int o three catego 2ries:geos patial data, mapp ing 2assisted data and ma Pdata 1Based on analyzing the characteristics of these three categories, this article intr oduces the st orage structure of each kind of data in detail, es pecially how t o use the big object type in O racle t o st ore data with coor 2dinates, which unifies the functi onality and efficiency of this database 1
Key words:cart ography; database; GI S; st orage structure
①②②
(①College of Res ources and Envir on ment, Huazhong Agricultural University, W u 2YAN G Yong , L I L in , ZHEN G X in 2yan
han 430070, China; ②School Of Res ource And Envir on mental Science, W uhan University, W uhan 430079, China )
(上接第184页) [6]彭飞, 柳重善, 张其善1基于代价函数的组合导航系[2]苏洁, 周东方, 岳春生1GPS 车载导航中的实时地图统地图匹配算法[J ].北京航空航天大学学报, 2002,
匹配算法[J ].测绘学报, 2001, 30(3) :2522256128(3) :26122641[3]王楠, 王勇峰, 刘积仁1一个基于位置点匹配的地图[7]Ochieng W Y, Quddus M , Noland R B 1MAP 2MATCH 2
匹配算法[J ].东北大学学报(自然科学版) , 1999, I N G I N COMP LEX URBAN ROAD NET WORKS [J ].20(4) 1B razilian Journal of Cart ography (Revista B rasileira de [4]谢彩香, 林宗坚, 等1GPS/DR/MM组合导航中的车Cart ografia ) , 2003, 55(2) :12181
辆定位精度研究[J ].测绘科学, 2006, 31(1) 1[8]QuddusM A , OchiengW Y, Zhao L et al 1A Generalma [5]张其善1智能车辆定位导航系统及应用[M].北京:P matching A lgorith m for Trans port Tele matics App licati ons
科学出版社, 20021[J ].GPS Soluti ons Journal, 2003, 7(2) :15721671
D esi gn and i m ple m en t a ti on of an i n tegra ted map ma tch i n g m lgor ith m
Abstract:The paper investigated and realized a integrated map matching algorith m according t o the p rinci p le of point 2based map matching algorith m and weight 2based map matching algorithm 1It used different map matching method at different r oad conditi ons, and als o considered r oad net w ork connectivity 1The matching accuracy is 86%, and matching ti m e is about 0134s at acr oss 1So it can satis 2fy the require ments of vehicle navigati on syste m 1
Key words:GPS; vehicle positi oning; map matching
①①②
(①Chongqing Engineering Technol ogy Research Center for I nfor mati on
Manage ment in Devel 2L I N N a , L I Zhi , WAN G B in
opment, Chongqing Technol ogy and Business University, Chongqing 400067, China; ②Chongqing Geomatics Center, Chongqing 401121, China )