GitHub 在今年六月增加了 GeoJSON 的支援 可以直接預覽 GeoJSON
在八月則增加了 CSV 的預覽功能
以及在十月推出了 government.github.com 希望大家把各國政府資料往 GitHub 上丟
看的出來 GitHub 的野心不只是放在程式開發者身上,他也想成為資料的收集者

不過他的 GeoJSON 和 CSV 預覽功能因為是透過 JavaScript 在前端做的,因此有大小限制,超過大小就無法預覽了
只是地理資訊的部份,很多資料是很容易超過大小,為了讓 GitHub 能預覽而故意把精準度壓到很低其實也不是很好的方法
所以我做了一個工具,可以線上預覽超過 10MB 的 GeoJSON 和 CSV。
(不過超過 100MB 可能還是會失敗,畢竟 100MB 的 JSON 要 decode 有時候就會把記憶體吃光光了,這些就要額外再多做些處理)
這個工具在這邊 http://github.ronny.tw
只要進去首頁輸入你的 GitHub 檔案的位置,就可以預覽更大的 GeoJSON, TopoJSON 和 CSV ,甚至是 GeoJSON 和 CSV 的組合喔!
或者是在瀏覽 GitHub 檔案時,將網址的 https://github.com/ 改成 http://github.ronny.tw/ 也可以喔
下面來示範一下支援哪些類型吧!


1. GeoJSON: 2010 台灣村里界圖 (74MB, 8052 村里)


2. GeoJSON(LineString): 臺北市聯營公車路線圖 (13MB, 482 條線)


3. CSV: 國土測繪地標資訊 (6MB, 58324 個點)
(CSV 我還沒做好 iframe 外嵌功能,所以請從上面連結點進去吧)

上面畫出 GeoJSON 和 CSV 是基本,接下來還可以把兩者組合做出新的地圖!

1. GeoJSON + CSV = ColorMap: 世界銀行提供歷年各國 GDP 成長率 + 世界各國疆界(來自Natural Earth Data) = GDP 成長率地圖


2. 包含經緯度資訊的 CSV = CSVMap: 台灣地標地圖


在畫 ColorMap 時,我的工具會需要知道你的資料來自 GitHub 哪裡,你的圖資來自哪裡,以及你要依據哪個欄位畫出資料,顏色區間是什麼
畫 CSVMap 時,我則是要知道你的經緯度放在 CSV 的哪一欄
所以這兩種組合地圖還需要額外的一個 JSON 檔來存放設定,關於這 JSON 檔的內容,可以參考 2012藍綠地圖設定檔
主要要設定的包括: type=ColorMap, data_repo={CSV資料的位置}, map_repo={地圖的位置}, data_columns={CSV資料中地名資訊欄位}, map_columns={與data_columns對應的在geojson的欄位}, tabs={指定要畫出哪些地圖,裡面指定要畫出的欄位以及各數字區間的顏色}
而 CSVMap 可以參考 台灣地標地圖設定檔
關於更詳細的設定方式,我明天再寫一篇文章來說明吧!

做出這工具是希望大家能更容易的做出地理資訊相關的應用
而且可以把資料都往 GitHub 上面丟,不需要自己架設主機
並且讓大家更容易瀏覽地理相關的數據變化
來把資料往 GitHub 上面丟吧!! (不過雲端還是有可能萬里無雲,記得丟到 GitHub 以外,還要找其他地方也備份一份,不要丟上去就把本地端的砍掉了喔)

文章標籤

創作者介紹
創作者 榮尼王 的頭像
榮尼王

Ronny's BLOG

榮尼王 發表在 痞客邦 留言(3) 人氣()