地理信息数据库中数据字典的设计(2)
发布时间:2021-06-08
发布时间:2021-06-08
地理信息系统
第P期
肖计划等:地理信息数据库中数据字典的设计
UO
!"#$$%&’(")
{
[./;!*#+,-#,(0&1234-/.232-]!!字段名称[./;!*#+,%#6’780&1234-/.232-]!!字段标题5
;2&’(")9(,9(!!字段类型:5:5;;8$’8()’86,3(86*!!字段长度<<;!*#+!,5=#";(!!字段值
}
再定义一个类%&’(")$来记录一个图层的所有字段的信息:!"#$$%>’(")${
成员变量!!
;?(!67+"%&’(")!#,3#(+&’(")$!!存放图层属性数据字段结构信息的数据结构:
;其属性数据’86,976#"/66+’@;6(4#6#A’B(18C6(!!该成员变量记录对于属于本图层的每个特征对象,:
所占的内存空间的总字节数。
[./];其中数组的下标与&’86,/))+($$D>>$(60&1234A!!,/))+($$D>>$(6是一个整数数组,’(")E
每个数组元素记录该字段在存储属性数据的连18)(F对应,
续内存空间中的偏移地址。
成员函数!!
(,,);@77"/))&’(")!78$6!*#+!8#,(,!78$6!*#+!!#6’782&’(")9(6(’86"(86*GH5:5:5<
}
这样,就可以建立一个图层的字段结构信息了:IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
(“&“编号”,,))&’(")14”4/D1-92L2M9NJ2);&’(")$18>7J6+K#/
(“.”“图号”,,);&’(")$18>7J6+K#/))&’(")#-74/DA9M1-L9NJ2,OH5(“9“类型”,,);&’(")$18>7J6+K#/))&’(")NJ2”4/DA9M1-L9NJ2,PH(“./“主码”,,;&’(")$18>7J6+K#/))&’(")1-%D42”4/D1-92L2M9NJ2)(“A“识别码”,,;&’(")$18>7J6+K#/))&’(")QC%D42”4/D1-92L2M9NJ2)(“4.“地名指针”,,;&’(")$18>7J6+K#/))&’(")J9M”4/D-92L2M9NJ2)(“9“通行情况”,,);&’(")$18>7J6+K#/))&’(")M/&&1%A9/92”4/DA9M1-L9NJ2,R(“2“海拔高程”,,;&’(")$18>7J6+K#/))&’(")32=/91D-”4/D1-92L2M9NJ2)
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
很明显,半封闭、半开放式的程序设计较之封闭个外部的数据库表(也就是本文所说的数据字典)
中。当需要改变图层的属性字段的项数时,只要修式的设计大大降低了程序的代码量,所有图层的对
改和编辑这个数据库表即可。如表O所示,当前图象都是基于同一个类来构建的。只是在构建图层的
层只有R个属性字段,读取数据表在一个循环中调属性字段结构时,对于不同的地理层来说,只是
用&()函数即可。()函数调用的次数不同’(")$18>7J6+K#/))&’(")&’(")$18>7J6+K#/))&’(")而已。
但是,这种半封闭、半开放式的缺陷也是明显的。即对属性数据的处理中,它的前提条件是必须事先知道属性数据项的项数,以及每个属性字段的数据类型和长度等信息。当需要增加新的属性字段时必须显式地调用&()函’(")$18>7J6+K#/))&’(")数。
)开放式的程序设计S
开放式的程序设计可以解决P)中的不足。在
万方数据 开放式设计中可以把图层的属性字段信息存储在一
表!不完全属性项说明数据字典
A*;0’8HO<A*;0’8HP<A*;0’8HS<A*;0’8HU<A*;0’8HR<
名称类型宽度水深泥深
SH$PH$OHTP>OHTP>OHTP>
HHHHH
当要修改属性字段,增加或删除时直接修改数
据库表就行了。增加属性项之后如表P所示。
这样不需修改程序代码就实现了地理属性数据
下一篇:家长会班主任发言稿五年级写