【Android 入門開發實戰:口罩地圖】口罩即時庫存開放資料
【Android 入門開發實戰:口罩地圖】線上免費講義課程目錄
2020年初,爆發新型冠狀病毒肺炎(COVID-19)疫情,當時口罩搶破頭,面對一罩難求的情況下,政府管制口罩禁止出口,國內採實名制,民眾可持健保卡至藥局購買。政府開放口罩庫存資料,透明呈現每間藥局即時庫存,不用辛苦挨家挨戶的跑遍每間藥局詢問有無口罩,方便民眾購買口罩。
這次課程的題目, KT 老師,選擇貼近你我身邊的實際例子:「口罩地圖」,來做練習,我們實際動手做,本課程使用 Kotlin 程式語言,來串接口罩即時庫存的公開資料,從實作中來學習如何開發一款 Android APP 應用程式。有別於一般 Android 課程內容設計,或許之後疫情趨緩,再也用不上口罩地圖、但實際上這套課程,我們學到的不只是 Google Maps 應用口罩地圖的開發,而是一套紮實開發 Android 應用程式的方法。
有了這套開發經驗,我們只要將資料來源轉換成是天氣,他就會是一款氣象APP,同理換成 YouBike 微笑單車,他就可以變成隨時查詢,目前每站租借單車狀態的 APP,如果是公車進站資訊,就可以變成等公車 APP,以此類推。
政府資料開放平臺
在介紹「口罩資料」之前,KT 先跟大家介紹一下「政府資料開放平臺」,在這一個網站上,政府根據《政府資訊公開法》,收集了各縣市跨部門的單位資料。目前資料分類上共有18種,其中資料格式有常見的 CSV、XML、JSON 等多樣式格式提供給任何人,在其使用規範內,皆可以使用用該平臺所提供的開放資料自由運用,其中包含了重製、改作、公開傳輸和產生衍生物等。
口罩剩餘數量
而我們這次口罩資料源頭,也是隸屬在這個平台上,健保特約機構口罩剩餘數量明細清單 :
點擊頁面中的「檢視資料」,可以看到其他種資料格式:
開源的藥局資料結合衛生所即時庫存API資料
但上方開放資料只有口罩庫存資料,若我們想結合 Google Map 地圖來標示各藥局分佈,就還需要自己動手結合藥局資料與地址轉座標經、緯度資料。在此特別感謝有好心的大大神人 kiang,已經把我們統整了藥局資訊、口罩庫存與座標資料。我們不再重覆再造輪子,所以我們改採用 kiang 的 開源的藥局+衛生所即時庫存API資料。
我們擷取其中一筆資料來瞧瞧,其中包含了,藥局名稱、營業時間、電話、地址、經緯度座標…等藥局相關資訊:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"id": "5901024427",
"name": "博昱仁愛藥局",
"phone": "(02)87739258",
"address": "臺北市大安區仁愛路4段65號",
"mask_adult": 0,
"mask_child": 450,
"updated": "2020\/09\/13 11:32:37",
"available": "星期一上午看診、星期二上午看診、星期三上午看診、星期四上午看診、星期五上午看診、星期六上午看診、星期日上午看診、星期一下午看診、星期二下午看診、星期三下午看診、星期四下午看診、星期五下午看診、星期六下午看診、星期日下午看診、星期一晚上看診、星期二晚上看診、星期三晚上看診、星期四晚上看診、星期五晚上看診、星期六晚上看診、星期日晚上看診",
"note": "週間(週一至週五)上午9點發放號碼牌收取健保卡,下午2點領取",
"custom_note": "",
"website": "",
"county": "臺北市",
"town": "大安區",
"cunli": "仁愛里",
"service_periods": "NNNNNNNNNNNNNNNNNNNNN"
},
"geometry": {
"type": "Point",
"coordinates": [
121.546869,
25.038194
]
}
},
...
...
...
]
}
而課程大部分時間都是在練習如何使用開源資料,所以我們在學習的階段,暫時可以先不用訪問真實即時庫存資料,造成不必要的國家資源浪費,另外也防止之後疫情結束,政府口罩資訊下架,仍可以繼續學習使用,所以 KT 將 kiang 大大 統整的資料,其中一天特別備份,作為此課程日後學習開發使用。
部分藥局口罩資料(其中一天)
https://raw.githubusercontent.com/thishkt/pharmacies/fafd14667432171227be3e2461cf3b74f9cb9b67/data/info.json
完整藥局口罩資料(其中一天)
https://raw.githubusercontent.com/thishkt/pharmacies/master/data/info.json
參考資料
政府資料開放平臺-健保特約機構口罩剩餘數量明細清單
https://data.gov.tw/dataset/116285
口罩供需資訊平台
https://g0v.hackmd.io/@kiang/mask-info
藥局+衛生所即時庫存 geojson by kiang
https://raw.githubusercontent.com/kiang/pharmacies/master/json/points.json
那這次的課程就介紹到這邊囉~
順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,加追蹤喔!也歡迎大家將這套課程分享給更多人喔。
我們下次再見囉!!!掰掰~