多年來,ESRI 爲存儲地理信息開發了三種主要數據格式 - coverage 格式、shapefile 格式及地理數據庫格式。其中,所開發的 Shapefile 爲存儲地理及屬性信息提供了一種簡單的非拓撲格式。正因爲 shapefile 的簡易性,使其成爲一種很是流行的開放式數據轉換格式。憑藉其簡易性,shapefile 彷佛已成爲人們的必然選擇,然而,在其地理數據庫地址應用中仍存在侷限性。所以,使用 shapefile 時,應注意其侷限性。歸納以下:數據庫
正由於存在這些(或更多)問題,若是選用 shapefile 進行活動數據庫管理將顯得捉衣見肘 - 它們沒法處理當今數據建立、編輯、版本管理及存檔的生命週期。網絡
除如下列出的一些特例外,可使用 shapefile 來存儲簡單的要素幾何。不過,shapefile 的屬性存在嚴重問題。例如,它們沒法存儲空值,沒法向上舍入數字,對 Unicode 字符串的支持不足,字段名稱最長只能爲 10 個字符,且在同一字段中沒法同時存儲日期和時間。這些只是其中的主要問題。此外,它們不支持在地理數據庫中發現的功能,如:域和子類型。所以,除非是簡單的屬性且不須要使用地理數據庫功能,不然不得使用 shapefile。工具
Shapefile 存儲在三個或更多個具備相同前綴的文件中,且位於同一系統文件夾(shapefile 工做空間)中。當您使用 Windows Explorer 而非 ArcCatalog 查看該文件夾時,可看到各文件。ui
擴展名編碼 |
描述spa |
必需的文件?code |
---|---|---|
.shpxml |
用於存儲要素幾何的主文件。此文件中未存儲任何屬性 - 僅有幾何。對象 |
是索引 |
.shx |
.shp 的配套文件,用於存儲 .shp 文件中各個要素 ID 的位置。 |
是 |
.dbf |
用於存儲要素屬性信息的 dBASE 表。 |
是 |
.sbn 和 .sbx |
用於存儲要素空間索引的文件。 |
否 |
.atx |
爲各 dBASE 屬性索引(創建於 ArcCatalog 中)而建立。 |
否 |
.ixs 和 .mxs |
讀寫 shapefile 的地理編碼索引。 |
否 |
.prj |
用於存儲座標系信息的文件。 |
否 |
.xml |
ArcGIS 的元數據;用於存儲 shapefile 的相關信息。 |
否 |
地理數據庫數據類型 |
dBASE 字段類型 |
dBASE 字段寬度(字符數) |
---|---|---|
對象 ID |
數字 |
9 |
短整型 |
數字 |
4 |
長整型 |
數字 |
9 |
浮點型 |
浮點型 |
13 |
雙精度 |
浮點型 |
13 |
文本 |
字符 |
254 |
日期 |
日期 |
8 |
若您的字段名稱或字段值須要支持 Unicode,則強烈建議您使用地理數據庫,而非 shapefile。
包含空值的數據類型 |
Shapefile 製圖表達 |
---|---|
數字 - 當工具須要輸出「空值」、無窮大值或 NaN(非數字)時 |
-1.7976931348623158e+308(最大負值的 IEEE 標準) |
數字(全部其餘地理處理工具) |
0 |
文本 |
「 」(空白 - 無空格) |
日期 |
存儲爲零,但顯示爲「<空>」 |
Shapefile 在工做空間或要素類級別無擴展數據類型,所以,從地理數據庫要素類或其餘格式轉換爲 shapefile 時會致使下列數據丟失:
可經過任何可以輸出要素類的地理處理工具來選擇 shapefile 或地理數據庫要素類做爲輸出格式。一樣,可經過表輸出工具來選擇 dBASE 文件 (.dbf) 或地理數據庫表做爲輸出。您應始終了解所使用的格式,以及將地理數據庫輸入轉換爲 shapefile 輸出的後果。
地理處理工具可自動生成輸出要素類或表。自動生成的輸出基於使用當前及臨時工做空間環境中所述的許多因素。若您的臨時工做空間環境未設置爲某個地理數據庫,而是設置爲了某個系統文件夾,則自動生成的輸出要素類將爲 shapefile 或 dBASE 文件,以下圖所示。
![]() |
建議您將臨時工做空間設置爲某個文件地理數據庫,以便自動生成的輸出不會被寫入 shapefile 或 .dbf 表中,而是被寫入文件地理數據庫中。
因爲 shapefile 些入速度快,可加快模型執行速度,所以,一般用它寫入模型的中間數據。不過,寫入文件地理數據庫與寫入 shapefile 的速度幾乎相同,因此除非對執行速度的要求較高,不然應始終使用文件地理數據庫寫入中間數據及輸出數據。若您必定要使用 shapefile,請注意上述限制,且僅將 shapefile 用於簡單要素和屬性。將 shapefile 用於中間數據的替代方法是將要素寫入 in_memory 工做空間。