文主要介绍GIS系统中,矢量系统与属性数据库系统的连接方式以及示例。对于一个矢量图形元素,可以采用不同的方式去连接属性数据库,以下是三中常用的连接方式:
1: 连接数据库表的一条记录
这种连接方式下,一个矢量图形元素连接的是数据表的一条记录。例:在全国城市地图上,有2000多个县级以上城市的标志,建立一个数据表存储各个城市的性质数据信息,将每个城市的信息记录在数据表的一条记录中。
这是一种最简单的连接方式,在这种连接方式下,数据表的每条记录有独立的唯一识别号,并作为一个连接单元与矢量图形元素建立连接。
2:连接整个数据表
在某些情况下,矢量图形元素连接的是一个数据表。例:在开发一个工程项目建设管理系统时,对于每个重点工程,在施工组织平面图中可以用一个桥梁图例来表示,在数据库管理系统中,一个数据表存储了有关整个重点工程施工过程中伴随着时间变化的有关工程量,施工进度,投资等方面的信息,即整个数据表中的所有记录都是针对这个重点工程的。在这个情况下,整个数据表作为一个连接单元,与一个矢量图形元素建立连接。
3:连接数据库表的一个记录集合
还有另外一种连接方式,它连接的是数据表中的一部分记录。例:在开发一个工程项目施工管理系统时,在一个数据表存储多个桥梁的随着时间变化的有关工程量,施工进度,投资等各个方面的数据资料,在这个情况下,一个桥梁图例连接是经过过滤的某个记录集合的,这个集合作为连接单元,与图形元素进行连接。
连接特性:1:连接的双向性 :图形单元与数据单元的相互连接
2:连接的多项性 :图形单元与数据单元一对多
3:连接的永恒性 : 不会因为操作而改变连接
下面示例连接性代码的编写:
在矢量图形系统中,MyShape类作为所有图形元素的基类,定义了一个属性:shape_only_id;此变量在同类图形元素中具有唯一性。但在不同的图形类中,可能相同。所以要唯一地表示一个图形元素,需要2个值:1 图形元素的类别 2 此元素在此类别中的ID值。
一:标示图形元素的连接:
如1---直线
2---连续直线和多边形
3---圆
4---矩形
5---文本
6---图例
用一个Int 表示此ID: 1+2000 代表的是:直线中的2000号元素。
二:标示数据连接单元的连接
(1):数据表的一条记录作为连接单元
如:在City表中,建立一个字段id_only,作为此数据集的唯一标示符。通过id_only就可以唯一地表示一条记录。为了能够在整个数据库管理系统中唯一地标示一条记录,还必须要一个参数,那就是记录集合对象的唯一标示号。定义一个数组DataInfo来记录各个集合记录对象的信息。数据连接单元用2个参数来唯一确定一条数据单元:即:记录集合对象ID和id_only。
用一个类来组织整个连接:
LinkData.java
public class LinkData {
int linkType ;// 1表示一条记录连接方式,2表示数据集合连接方式。
int graphicId // 图形类别号。
int graphicElementId //图形元素唯一ID
int dataBaseId //记录集合的ID
int recordId // 记录的唯一ID