空間資料庫引擎探究自 http://www.goldenbg.com/article.asp?id=819)

來源:互聯網
上載者:User
把GIS資料放在RDBMS中,但是一般的RDBMS都沒有提供GIS的資料類型(如點、線、多邊形、以及這些feature之間的拓撲關係和投影座標等相關資訊),RDBMS只提供了少量的資料類型支援:int,float,double,Blog,Long ,char等,一般都是數字,字串和位元據幾種。並且RDBMS不僅沒有提取對GIS資料類型的儲存,也沒有提供對這些基礎類型的操作(如:判斷內含項目關聯性,相鄰、相交、求差、距離、最短路徑等)。

為了實現GIS資料類型的儲存和對GIS資料類型的操作支援。我們可以採用曲折的辦法來達到這些目的。

1、 儲存:把featrue以一個二進位的欄位形式儲存,同時建立對該位元據的描述資訊(稱為空白間中繼資料)。

2、 操作:為每種feature建立一組函數包。

A、 讀取時,先讀取空間中繼資料,根據中繼資料把featrue的位元據填充到featrue對象的data部分中。

B、 寫入時,先寫入空間中繼資料,然後把featrue對像的data部分序列化為位元據,然後儲存到feature欄位中。

C、 空間運算:空間運算操作的內容為fatrue對象的data部分,而空間運算做為fatrue類成員函數。或者單獨為每種feature建立相關的函數包。

下面我們先探究空間資料類型的儲存。儲存主要牽涉到的是GIS資料的中繼資料部分。我們需要管理好各種空間資料。

同種類型的featrue我們歸為一類,我們稱為featrue類,每個feature類對應著資料庫中的一個二進位欄位,每個feature對象對應著這個二進位欄位的具體數值。為了把GIS的feature的屬性資料和空間資料儲存到一起,統一管理。我們建立這樣幾個概念。

資料集:對應著資料庫中的一張表,這個表裡有featrue的二進位欄位和一般的屬性欄位,同時還包括每個feature對象的中繼資料欄位如:周長、面積以及輔助欄位。

資料來源:對應著資料庫中的一組表,由兩部分組成:一部分是資料集,另一部分是對資料集描述的表(稱空間中繼資料表)。通常是每個schma(或者資料庫)下一組空間中繼資料表。

起輔助作用的資料庫物件:包括為各個資料集建立的索引、觸發器、序列……

空間中繼資料表包括:

A:描述每個資料集的表:這個表裡的欄位包括:每個資料集的包圍盒。以及對該資料集所建的索引的類型,名稱等。

B:描述資料集欄位的表:這張表的欄位包括:資料集名,欄位名稱,欄位類型,欄位別名、資料集別名、資料集類型等……

C:輔助對象的中繼資料表:包括描述索引與資料集之間關係的表,包括描述觸發器與資料集之間關係的表,包括描述序列與資料集之間關係的表。描述資料集之間關係的表(如網路資料集,是由點類型的資料集與線類型的資料集組成,這就需要說明點與線之間的拓撲關係咯)

上面我們只討論向量的GIS資料類型的儲存,下面我們來探究下柵格類型的GIS資料存放區。

同樣的也有柵格的資料集,只不過是欄位的類型稍微改變了下而已。為了加快資料存取,我們應當使得GIS操作只存取它所需要的資料,以一張遙感影像為例,我們可以把一塊大影像按一定規則切割為一系列的小圖塊,然後把這些小圖塊以二進位的形式儲存到IMAGE欄位裡,同時把該小圖塊的位移位置(有了其實位置,和位移位置以及每個圖塊的大小就知道了該圖塊的地理範圍了)作為表的屬性欄位儲存下來。以後在取資料時,需要先查該圖塊的中繼資料內容,得出地理範圍(或者乾脆就把每個圖塊的地理範圍儲存下來),這樣就知道在顯示時需要取哪些記錄,然後再把需要顯示的記錄的IMAGE的資料取出來,根據地理範圍把資料拼接起來就可以了(向量資料的顯示與操作也是這麼幹)。圖塊大小的劃定規則是比較重要的,這非常影響速度的。

一般來講一個波段,對應著一個柵格資料集。在顯示影像時,需要同時讀取多個柵格資料集,在顯示的時候把它們拼接到一起。

我們還需要描述這些柵格資料集的中繼資料表,比如,那幾個柵格資料集是一組的對應著同一個影像檔案,地理座標的情況怎樣,影像金字塔資訊。

後面我們討論下影像金字塔,為了加快資料顯示,有些空間資料庫引擎是對最原始的資料抽稀,按每一層金子塔抽稀為一個柵格資料集。抽稀一般採用冪級數的方式。這是一種以空間換時間的做法。

對於影像壓縮技術,我沒有研究過,等過段時間看看再說吧。

有了這些中繼資料表和feature表後,這就為展開GIS操作奠定了基礎。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.