mapshaper - Shp to topojson

  • 1010
  • 0
  • GEO
  • 2017-06-05

利用 mapshaper 進行圖資的格式轉換

 

最近在處理來自 OpenData 的圖資,由於這些圖資摻雜了中文 Big5,

如果透過一些工具網站進行線上處理成 json 時,

會發現中文部分會變成亂碼,甚至中文部分相關資料遺失。

 

 

一、坑啊

一開始爬了些文章找到 topojson,但不知道為什麼參照官方的方式...

安裝

npm install -g topojson

命令

c:\> topojson -o export.json -p --shapefile-encoding big5 input.shp

總會出現找不到此命令。

至於原因個人還是無法釐清 QQ,

目前是確定網站相關文章成功的文章最近一期是在去年,

而今年的 topojson 已經改版到 3.0.0 了,說不定也可能是改版原因.... (就不花時間找了)
 

 

 

二、Mapshaper

最後找到了 mapshaper

其實是從這篇 shp to geojson,找到 mapshaper 的。

以下小廢話!生人請迴避!

對 geo 有研究的朋友,可能會聯想到 ogr2ogr(GDAL),簡單說就是整合再一起。

 

如果你是在 Mac 或 Linux 的朋友,就可以直接使用,

但如果你窗戶使用者,則需透過 OSGeo4W 來操作,

詳細的使用方式可參考:GDAL/OGR: 地理空间数据格式转换神器

 

不過環境設定有些麻煩,本人太懶了,如果有興趣可以去試試看。

而直接使用 mapshaper,用意純為快速,因為沒有特別需求(比如過濾某些資料),

如果單純只是想轉換含有中文的 shp,不妨參考 mapshaper。

 

 

 

三、安裝

這個工具十分方便,接下來就簡單說明如何使用。

直接從 npm 進行全域安裝。

npm install -g mapshaper

 

 

 

四、命令

本篇只講格式轉換,詳細功能就不提了~

更多說明可查看官網-Introduction-to-the-Command-Line-Tool

 

轉換格式
mapshaper [Input] -o [Output]
  • -o 表示格式轉換

實際範例:

mapshaper COUNTY.shp -o COUNTY.json

成功畫面:

  • 顯示 Wrote xxx.json 表示成功

 

JSON 格式

而 json 部分,我們可以指定輸出類型:geojsontopojson 兩種。

mapshaper COUNTY.shp -o format=geojson  COUNTY.json
mapshaper COUNTY.shp -o format=topojson COUNTY.json
  • format=[格式]

 

編碼
mapshaper COUNTY.shp encoding=big5 -o COUNTY.json
  • 編碼可轉換許多種,如果含有中文,則可使用 big5

 

指定 JSON 格式且轉換編碼
mapshaper COUNTY.shp -o encoding=big5 format=topojson COUNTY.json

 

 

 

四、結語

mapshaper 的使用方式十分簡單又快速,

在打這篇的同時,其實也邊下載 OSGeo4W 試試中,

不過下載好久....

如果你單純想要轉換格式,mapshaper 是個好選擇!

親愛的台灣終於出來惹..

 

有勘誤之處,不吝指教。ob'_'ov