Shapefile文件是美國(guó)環(huán)境系統(tǒng)研究所(ESRI)所研制的GIS文件系統(tǒng)格式文件,是工業(yè)標(biāo)準(zhǔn)的矢量數(shù)據(jù)文件。 Shapefile將空間特征表中的非拓?fù)鋷缀螌?duì)象和屬性信息存儲(chǔ)在數(shù)據(jù)集中,特征表中的幾何對(duì)象存為以坐標(biāo)點(diǎn)集表示的圖形文件—SHP文件,Shapefile文件并不含拓?fù)洌═opological)數(shù)據(jù)結(jié)構(gòu)。一個(gè)Shape文件包括三個(gè)文件:一個(gè)主文件(*.shp),一個(gè)索引文件(*.shx),和一個(gè)dBASE(*.dbf)表。主文件是一個(gè)直接存取,變長(zhǎng)度記錄的文件,其中每個(gè)記錄描述構(gòu)成一個(gè)地理特征(Feature)的所有vertices坐標(biāo)值。在索引文件中,每條記錄包含對(duì)應(yīng)主文件記錄距離主文件頭開(kāi)始的偏移量,dBASE表包含SHP文件中每一個(gè)Feature的特征屬性,表中幾何記錄和屬性數(shù)據(jù)之間的一一對(duì)應(yīng)關(guān)系是基于記錄數(shù)目的ID。在dBASE文件中的屬性記錄必須和主文件中的記錄順序是相同的。圖形數(shù)據(jù)和屬性數(shù)據(jù)通過(guò)索引號(hào)建立一一對(duì)應(yīng)的關(guān)系。
Shapefile中坐標(biāo)文件(.shp)由固定長(zhǎng)度的文件頭和接著的變長(zhǎng)度空間數(shù)據(jù)記錄組成。文件頭由100字節(jié)的說(shuō)明信息組成的(附表 1),主要說(shuō)明文件的長(zhǎng)度、Shape類型、整個(gè)Shape圖層的范圍等等,這些信息構(gòu)成了空間數(shù)據(jù)的元數(shù)據(jù)。在導(dǎo)入空間數(shù)據(jù)時(shí)首先要讀入文件頭獲取Shape文件的基本信息,并以此信息為基礎(chǔ)建立相應(yīng)的元數(shù)據(jù)表。而變長(zhǎng)度空間數(shù)據(jù)記錄是由固定長(zhǎng)度的記錄頭和變長(zhǎng)度記錄內(nèi)容組成,其記錄結(jié)構(gòu)基本類似,每條記錄都有記錄頭和記錄內(nèi)容組成(空間坐標(biāo)對(duì))。記錄頭的內(nèi)容包括記錄號(hào)(Record Number)和坐標(biāo)記錄長(zhǎng)度(Content Length)兩個(gè)記錄項(xiàng),Shapefile文件中的記錄號(hào)都是從1開(kāi)始的,坐標(biāo)記錄長(zhǎng)度是按16位字來(lái)衡量的。記錄內(nèi)容包括目標(biāo)的幾何類型(ShapeType)和具體的坐標(biāo)記錄(X,Y),記錄內(nèi)容因要素幾何類型的不同,其具體的內(nèi)容和格式都有所不同。對(duì)于具體的記錄主要包括空Shape記錄,點(diǎn)記錄,線記錄和多邊形記錄,具體的記錄結(jié)構(gòu)如附表 2所示。
屬性文件(.dbf)用于記錄屬性信息。它是一個(gè)標(biāo)準(zhǔn)的DBF文件,也是由頭文件和實(shí)體信息兩部分構(gòu)成。其中文件頭部分的長(zhǎng)度是不定長(zhǎng)的,它主要對(duì)DBF文件作了一些總體說(shuō)明(附表 3),其中最主要的是對(duì)這個(gè)DBF文件的記錄項(xiàng)的信息進(jìn)行了詳細(xì)的描述(附表 4),比如對(duì)每個(gè)記錄項(xiàng)的名稱,數(shù)據(jù)類型,長(zhǎng)度等信息都有具體的說(shuō)明。屬性文件的實(shí)體信息部分就是一條條屬性記錄,每條記錄都是由若干個(gè)記錄項(xiàng)構(gòu)成,因此只要依次循環(huán)讀取每條記錄就可以了。
索引文件(.shx)主要包含坐標(biāo)文件的索引信息,文件中每個(gè)記錄包含對(duì)應(yīng)的坐標(biāo)文件記錄距離坐標(biāo)文件的文件頭的偏移量。通過(guò)索引文件可以很方便地在坐標(biāo)文件中定位到指定目標(biāo)地坐標(biāo)信息。索引文件也是由文件頭和實(shí)體信息兩部分構(gòu)成的,其中文件頭部分是一個(gè)長(zhǎng)度固定(100 bytes)的記錄段,其內(nèi)容與坐標(biāo)文件的文件頭基本一致。它的實(shí)體信息以記錄為基本單位,每一條記錄包括偏移量(Offset)和記錄段長(zhǎng)度(Content Length)兩個(gè)記錄項(xiàng)。附表 5給出了具體的描述。