什麼是Open Data?什麼是JSON?Scratch可以做出什麼Open Data的應用?
以下是我的探索過程!
最近隨著雲端、大數據(Big Data),跟著世界的潮流,政府也有了資料開放平台,讓一些公共的資料,透過網路獲得各種資料,甚至是即時的資料。
首先要找到自己有興趣的開放資料,身為在地人當然是選以下的網站,雖然目前即時性的不多,相信以後會越來越豐富。
找來找去,又要有中文的,又不要太複雜的,最後找到這個「路外停車資訊」,可以提供各公立停車場的即時資訊(每分鐘更新)
Open Data常透過網頁的API形式來查詢資料,所以找到了下面的API的查詢網址。
格式用目前網路上交換資料流行的JSON格式。
直接點下API的連結,瀏覽器出現的是密密麻麻的JSON數值。
JSON是什麼?它起源於Javascript,是資料(數字、文字、物件)的文字表示方法 ,後來變成是網路上流行的資料交換格式
JSON雖是輕量型的文字表達(比較起XML)但是資料過多,直接看還是不方便。所以可在將JSON的文字,貼到類似JSON VIEWER的工具,這樣結構看起來就會清楚多了。
JSoN VIEWER:http://jsonviewer.stack.hu/
另外也可以稍參考一下開放資料的開發指南,裡面有提到一些查詢語法的細節。像我這次的路外停車資料,它的API網址是:
最後的format=json是表示資料要用json格式,其他的還有CSV或是XML。可是對我而言,這樣的資料還是太多,像我只需要桃園區的停車場資料。依開發指南,可以再加一個filters查詢變數。
http://data.tycg.gov.tw/api/v1/rest/datastore/0daad6e6-0632-44f5-bd25-5e1de1e9146f?format=json&filters={"areaName":"桃園區"}
這樣就可以過濾掉一些不必要的資料。
找到了想要的資料,接著要在Scratch做相關的規劃,由於Scratch的資料結構,只有清單可以使用,類似其他語言的陣列,清單的項目可以是文字或數字,不過只能是一維的,所以在配置上就比較費功夫。
接下來是要如何解析Open Data的JSON資料呢?這部份Transformer社群版已幫我們打通關節,
如下圖,在連線時,檔案的部分要用「自動開啟(含網路積木)」
這樣才會在Scratch內,有相關的擴充積木。
抓取資料積木的例子如下圖,HTTP GET資料類型,記得要用json_opendata(開放資料使用),Data剖析完後,就可以雲端資料選擇欄位與第幾筆,最後用剖析資料來當成文字的值。
因為每一個資料,都必需透過中介程式,所以資料抓取的速度會慢(太快會有資料來不及產生的情形),所以在規畫上,抓取的資料不要太多,不然會等得很辛苦。
抓到資料,並放進Scratch清單後,還要考慮資料如何呈現。因為有不同的停車場,所以我第一個想到的是Google地圖,為了增一點動態效果,再加上2張畫面捲動的功能。
除了地圖以外,還有貓咪會說出相關訊息。右方有計費、車位數、地址資料,右下有切換停車場的按鈕。
最後做出來的Scratch作品如下影片。
本來還想讓查出來的資料,再加上轉語音的積木,變成語音唸出。不過由於我筆電的關係,無法使用這個功能,就做罷了。
最後要感謝的是Transformer社群版的中介程式:
宇宙機器人
以及參考了呂奎漢老師的例子
https://www.facebook.com/TonightCode/posts/857000691100807
最後附上作品的Scratch檔案:
https://drive.google.com/file/d/0B2bn9imRnAgdd1g5aVBPUFVSUmM/view?usp=sharing
沒有留言:
張貼留言