文主要介紹GIS系統(tǒng)中,矢量系統(tǒng)與屬性數(shù)據(jù)庫系統(tǒng)的連接方式以及示例。對于一個矢量圖形元素,可以采用不同的方式去連接屬性數(shù)據(jù)庫,以下是三中常用的連接方式:
1: 連接數(shù)據(jù)庫表的一條記錄
這種連接方式下,一個矢量圖形元素連接的是數(shù)據(jù)表的一條記錄。例:在全國城市地圖上,有2000多個縣級以上城市的標志,建立一個數(shù)據(jù)表存儲各個城市的性質(zhì)數(shù)據(jù)信息,將每個城市的信息記錄在數(shù)據(jù)表的一條記錄中。
這是一種最簡單的連接方式,在這種連接方式下,數(shù)據(jù)表的每條記錄有獨立的唯一識別號,并作為一個連接單元與矢量圖形元素建立連接。
2:連接整個數(shù)據(jù)表
在某些情況下,矢量圖形元素連接的是一個數(shù)據(jù)表。例:在開發(fā)一個工程項目建設管理系統(tǒng)時,對于每個重點工程,在施工組織平面圖中可以用一個橋梁圖例來表示,在數(shù)據(jù)庫管理系統(tǒng)中,一個數(shù)據(jù)表存儲了有關整個重點工程施工過程中伴隨著時間變化的有關工程量,施工進度,投資等方面的信息,即整個數(shù)據(jù)表中的所有記錄都是針對這個重點工程的。在這個情況下,整個數(shù)據(jù)表作為一個連接單元,與一個矢量圖形元素建立連接。
3:連接數(shù)據(jù)庫表的一個記錄集合
還有另外一種連接方式,它連接的是數(shù)據(jù)表中的一部分記錄。例:在開發(fā)一個工程項目施工管理系統(tǒng)時,在一個數(shù)據(jù)表存儲多個橋梁的隨著時間變化的有關工程量,施工進度,投資等各個方面的數(shù)據(jù)資料,在這個情況下,一個橋梁圖例連接是經(jīng)過過濾的某個記錄集合的,這個集合作為連接單元,與圖形元素進行連接。
連接特性:1:連接的雙向性 :圖形單元與數(shù)據(jù)單元的相互連接
2:連接的多項性 :圖形單元與數(shù)據(jù)單元一對多
3:連接的永恒性 : 不會因為操作而改變連接
下面示例連接性代碼的編寫:
在矢量圖形系統(tǒng)中,MyShape類作為所有圖形元素的基類,定義了一個屬性:shape_only_id;此變量在同類圖形元素中具有唯一性。但在不同的圖形類中,可能相同。所以要唯一地表示一個圖形元素,需要2個值:1 圖形元素的類別 2 此元素在此類別中的ID值。
一:標示圖形元素的連接:
如1---直線
2---連續(xù)直線和多邊形
3---圓
4---矩形
5---文本
6---圖例
用一個Int 表示此ID: 1+2000 代表的是:直線中的2000號元素。
二:標示數(shù)據(jù)連接單元的連接
(1):數(shù)據(jù)表的一條記錄作為連接單元
如:在City表中,建立一個字段id_only,作為此數(shù)據(jù)集的唯一標示符。通過id_only就可以唯一地表示一條記錄。為了能夠在整個數(shù)據(jù)庫管理系統(tǒng)中唯一地標示一條記錄,還必須要一個參數(shù),那就是記錄集合對象的唯一標示號。定義一個數(shù)組DataInfo來記錄各個集合記錄對象的信息。數(shù)據(jù)連接單元用2個參數(shù)來唯一確定一條數(shù)據(jù)單元:即:記錄集合對象ID和id_only。
用一個類來組織整個連接:
LinkData.java
public class LinkData {
int linkType ;// 1表示一條記錄連接方式,2表示數(shù)據(jù)集合連接方式。
int graphicId // 圖形類別號。
int graphicElementId //圖形元素唯一ID
int dataBaseId //記錄集合的ID
int recordId // 記錄的唯一ID