解決方案
1990 年代,每一家認真的 GIS 廠商都推出自家的專有檔案格式,因此要在不同軟體之間搬移圖層,就得重新數化,或撰寫一次性的轉換程式。Esri 自家的 ARC/INFO coverage 格式功能強大,卻是封閉的。當 Esri 在 1990 年代初隨 ArcView 2 推出 shapefile 時,這家市場領導者做了一個不尋常的選擇:它沒有把格式藏起來,而是完整地將其記錄成文件。
shapefile 不是單一檔案,而是三件一組:.shp 儲存幾何,.shx 是記錄位移的索引,.dbf 則是 1980 年代的 dBASE IV 資料表,儲存屬性。這樣的設計相當樸素:沒有拓撲、容量上限 2 GB、空值讀取為零。按理說,它本該只是個陪榜的格式。
1998 年 7 月的白皮書《ESRI Shapefile Technical Description》(J-7855)將完整的位元組層級配置公開,可免費閱讀、免費實作。任何程式設計師現在都能在一週內寫出轉換程式。開源函式庫採用了它,接著是每一家競爭對手的 GIS,然後是每一個需要讓所有人都能讀取的政府資料入口網站。
每一個新的讀取者都加深了網路效應。交換格式只求共通、不求優良,於是大家逐漸匯聚到那個任何人都能合法且低成本支援的格式——Esri 的格式。技術上更優越的替代方案則始終停留在小眾,因為支援它們是徒勞無功的工作。
達成了什麼
公開位元組,而非產品:開放勝過優雅
為何奏效
實作免費且不受限制,因此競爭對手與公家機關沒有理由自行發明交換格式。
每一個讀取者與寫入者都增添了網路效應;一旦資料入口網站預設採用 shapefile,要擺脫它就得付出沒有人想付的代價。
交換格式容忍醜陋。這個格式的缺陷——dBASE IV 屬性、2 GB 上限、沒有拓撲——其重要性遠不及它的普遍性。
Esri 在策略上獲勝:它的原生格式成了連競爭對手使用者都得用來搬移資料的管道,把他們拉向 Esri 的工具。
可借鏡之處
格式勝出靠的是採用成本,而非優點。替代方案更乾淨,卻沒有文件或需要授權,所以沒有人採用。讓你的格式免費可實作,並接受缺陷是普及的代價。
後續發展
將近三十年後,shapefile 仍是向量 GIS 資料在組織之間流動最常見的方式。開放地理空間聯盟(OGC)於 2014 年將以 SQLite 為基礎的後繼格式 GeoPackage 標準化,正是為了取代它,然而採用情況仍不全面——資料入口網站、人口普查與開源工具仍預設使用這個人人都能讀取的檔案。大多數 GIS 所依賴的開源資料函式庫 GDAL,仍將 shapefile 支援列為核心義務。這個人人愛罵的格式,活得比那些人人本該喜愛的格式更久。
追溯依據
參考來源
- ESRI Shapefile Technical Description Esri White Paper (J-7855) · esri.com
- What is a Shapefile? GIS Lounge (Geography Realm) · gislounge.com ·
- GeoPackage Standard — Open SQLite Format for Geospatial Data Open Geospatial Consortium · ogc.org