文主要介紹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