公告版位
我是公告
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

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

留言列表 (3)

發表留言
  • Lin Dylan
  • 小弟在 GIS 應用方面是初學者,在您的 twgeojson 裡,有關 multipolygon 的多層 coordinates,在繪製上有什麼特別要注意的?目前我是它們 flatten 當單層使用。有什麼這方面書參考資料可以推薦。謝謝。
  • 榮尼王
  • 如果也繪製來說,我覺得要注意的是 Polygon 可能會是有洞的
    例如「新北市」這個地理區塊中間就有一個大洞 (台北市)
    所以 Polygon 會是多個 LineString 組成

    而 MultiPolygon 就是一堆 Polygon 的 array (例如新北市可能包含基隆嶼、彭佳嶼、龜山島,這些都是沒有連在一起的一堆 Polygon)

    Point 就是 (x,y)
    LineString 就是一堆 Point
    Polygon 就是一堆 LineString (不過如果你的圖資中大部份 Polygon 都沒有洞的話,其實他都會是只有一個 LineString)
    MultiPolygon 就是一堆 Polygon
    大致上就是這樣吧..
    除此以外還有 GeometryCollection 這樣的型態,裡面可以混雜放著 Point, LineString, Polygon 等..不過這個型態有些 GIS 系統好像支援度不是很好

    至於推薦書目,我自己也沒看過什麼書 XD ,都是上網亂翻翻文件看看而已
    像是 http://geojson.org/ 上面的 GeoJSON spec
    以及 PostGIS 對於 GIS function 的介紹
    http://postgis.net/docs/manual-2.1/
  • Lin Dylan
  • 先謝謝您的回覆。

    我目前在是在 iOS 上應用這些資料,我把多層的 coordinates "壓平"後畫出來,以新北市的資料畫出來,確實是一個外圓包一個內圓。這裡有個疑問,若從用戶的角度看,並不能很明確看出哪一區塊是新北市。(當然是可以想當然爾的理解出來)。有什麼改進的地方?該如何"正確"的應用 multipolygon?

    目前我在資料庫裡也是用 binary data 的格式直接儲存這些 coordinates,取出直接使用。目前無法作到查詢功能。還不知道如何正確的儲存這些 coordinates data,以便查詢,比如以用戶的位置反查他所在位於哪一個里的。

    另外,我在導入資料庫時發現,village 的 data (2010 完整的版本)似乎有些記錄沒有 town 的相關資料?
找更多相關文章與討論