1. 程式人生 > >Shapefile檔案格式分析

Shapefile檔案格式分析

Shapefile檔案是美國環境系統研究所(ESRI)所研製的GIS檔案系統格式檔案,是工業標準的向量資料檔案。 Shapefile將空間特徵表中的非拓撲幾何物件和屬性資訊儲存在資料集中,特徵表中的幾何物件存為以座標點集表示的圖形檔案—SHP檔案,Shapefile檔案並不含拓撲(Topological)資料結構。一個Shape檔案包括三個檔案:一個主檔案(*.shp),一個索引檔案(*.shx),和一個dBASE(*.dbf)表。主檔案是一個直接存取,變長度記錄的檔案,其中每個記錄描述構成一個地理特徵(Feature)的所有vertices座標值。在索引檔案中,每條記錄包含對應主檔案記錄距離主檔案頭開始的偏移量,dBASE表包含SHP檔案中每一個Feature的特徵屬性,表中幾何記錄和屬性資料之間的一一對應關係是基於記錄數目的ID。在dBASE檔案中的屬性記錄必須和主檔案中的記錄順序是相同的。圖形資料和屬性資料通過索引號建立一一對應的關係。

字串1

Shapefile中座標檔案(.shp)由固定長度的檔案頭和接著的變長度空間資料記錄組成。檔案頭由100位元組的說明資訊組成的(附表 1),主要說明檔案的長度、Shape型別、整個Shape圖層的範圍等等,這些資訊構成了空間資料的元資料。在匯入空間資料時首先要讀入檔案頭獲取Shape檔案的基本資訊,並以此資訊為基礎建立相應的元資料表。而變長度空間資料記錄是由固定長度的記錄頭和變長度記錄內容組成,其記錄結構基本類似,每條記錄都有記錄頭和記錄內容組成(空間座標對)。記錄頭的內容包括記錄號(Record Number)和座標記錄長度(Content Length)兩個記錄項,Shapefile檔案中的記錄號都是從1開始的,座標記錄長度是按16位字來衡量的。記錄內容包括目標的幾何型別(ShapeType)和具體的座標記錄(X,Y),記錄內容因要素幾何型別的不同,其具體的內容和格式都有所不同。對於具體的記錄主要包括空Shape記錄,點記錄,線記錄和多邊形記錄,具體的記錄結構如附表 2所示。 字串2

屬性檔案(.dbf)用於記錄屬性資訊。它是一個標準的DBF檔案,也是由標頭檔案和實體資訊兩部分構成。其中檔案頭部分的長度是不定長的,它主要對DBF檔案作了一些總體說明(附表 3),其中最主要的是對這個DBF檔案的記錄項的資訊進行了詳細的描述(附表 4),比如對每個記錄項的名稱,資料型別,長度等資訊都有具體的說明。屬性檔案的實體資訊部分就是一條條屬性記錄,每條記錄都是由若干個記錄項構成,因此只要依次迴圈讀取每條記錄就可以了。

字串7

索引檔案(.shx)主要包含座標檔案的索引資訊,檔案中每個記錄包含對應的座標檔案記錄距離座標檔案的檔案頭的偏移量。通過索引檔案可以很方便地在座標檔案中定位到指定目標地座標資訊。索引檔案也是由檔案頭和實體資訊兩部分構成的,其中檔案頭部分是一個長度固定(100 bytes)的記錄段,其內容與座標檔案的檔案頭基本一致。它的實體資訊以記錄為基本單位,每一條記錄包括偏移量(Offset)和記錄段長度(Content Length)兩個記錄項。附表 5給出了具體的描述。