TNDengueMain

來台南吃喝玩樂的朋友,您是否知道自己正身處登革熱疫情熱區,應該要提高警覺呢?
 
住台南的朋友,您是否能及時發現住家附近發生通報疫情,可能不久之後要被室內噴藥呢?
 
您希望多瞭解自己的居住的鄰里,最近的登革熱疫情是否逐漸趨緩了呢?
 
您是否覺得官方媒體公佈的登革熱資訊不夠清楚、不夠公開透明,有看沒有懂?
 
以上這些問題,現在都不是問題了。
 
面對疫情,現在您有更方便掌握資訊的方法,只需滑動您的手機!
 
App 下載網址:appstore
 
這是至今為止,行動裝置上最方便好用的台南登革熱資訊查詢工具,高達兩萬多筆登革熱疫情資訊,以及上千筆化學噴藥防治時程,透過簡單明瞭的視覺化地圖定位,彈指間就能輕鬆獲得您想知道的登革熱資訊。有效掌握疫情資訊,消滅登革熱一統天下的日子指日可待。
 
特點:
  1. 有效且靈活運用「臺南市政府資料開放平台」兩萬多筆通報資料。
  2. 超強又簡便的地圖查詢介面,支援多重關鍵字查詢。
  3. 透過手機裝置,一鍵定位是否身處疫情熱區,超好用der!
  4. 支援通知中心,快速得知最新資料日期,不需時時刻刻進入 APP 查詢。
  5. 將關注的 區 / 里 疫情加入常用項目,結合地圖查詢介面,輕鬆關注區 / 里的疫情變化。
  6. 圖表統計疫情分佈,關注地區疫情趨勢一目了然。

操作說明:

主畫面

1. 啟動 App 的第一個動作,會先自動從「臺南市政府資料開放平台」下載通報資料與噴藥記錄。

TNDengue_01  

若沒有網路的話,會顯示如下的錯誤訊息。

TNDengue_02

一開始沒有網路的話,也抓不到資料,後面就不用介紹啦!所以請確認網路環境是否正常連線。

當所有的可用資料抓完之後,主畫面就有資料啦!接下來就可以進行各項功能操作了。

主畫面功能說明:

 TNDengue_03  

主畫面中顯示藍色的地方,按下去都是有功能的啦!會不會很容易理解呢?其中:

疫情分佈查詢 / 噴藥地點查詢 / 疫情分佈查詢:常用項目 / 分佈地圖:這四個功能按下去,畫面都會進入地圖查詢頁面,並附帶符合條件的關鍵字。

例如,點擊 TNDengue_flag01 功能按鈕,畫面會切換到地圖查詢介面,搜尋最後日期的資料並顯示在地圖上:

TNDengue_04

點擊 TNDengue_Chemical01 就是把最新噴藥日期 11-18 的 13 筆噴藥紀錄顯示在地圖上。

TNDengue_05  

常用項目:這一區塊是可以捲動的,包含「區別」3 筆與「里別」3 筆,點擊常用項目內的資料,例如點擊「東區」這一筆

TNDengue_06    

就會把 2015-11-16 的東區新增的 10 筆疫情顯示在地圖上。

TNDengue_07 

那麼...點擊在新增疫情為 0 筆的項目上呢?例如大恩里 2015-11-16 的 新增/總數 為 0 / 93,點擊之後:

TNDengue_08

查詢 2015-11-16 大恩里疫情 0 筆記錄沒有意義,所以會自動轉換成查詢大恩里全部疫情 93 筆並顯示在地圖上。

(上面的「大恩里」疫情座標,看起來怎麼怪怪的啊~?還有標示在鹽水溪北岸的...恩~這個問題,請跟市政府大力反應吧!他們提供的座標就是錯誤的,回報錯誤的人也不只我一個人,但公開資料平台也始終沒有更正,真正的原因我也不清楚。)

各位發現了嗎?每一個地圖查詢畫面下方,都有不一樣的關鍵字。結果的不同,關鍵就在查詢的關鍵字上...
關鍵就在查詢的關鍵字上...
關鍵就在查詢的關鍵字上...
(很重要,說三次)

所以啦!這支 App 最好用的地方,就是這個地圖查詢功能啦!接下來要隆重介紹,超強又好用的地圖查詢功能。

地圖查詢功能

從主畫面的 TNDengue_09 點進去,就會直接不帶關鍵字的方式進入地圖查詢畫面了。

TNDengue_10

截至 2015 年 11 月中旬就已經有兩萬多筆記錄,若全部顯示在地圖上的話,手機就會當場卡.卡.卡.卡.卡....然後就不小心閃退當機啦!就算用了蘋果公司最快最大最強最新最屌的 iPhone 6s 噗拉絲,照樣也會給你當場卡.卡.卡.卡.卡,然後......


就沒有然後了,因為我沒有 iPhone 6s 噗拉絲,太貴了,買不起...(現在還在用 iPhone 4s)

iPadPro_11

所以雖然有兩萬多筆資料,不過地圖上也只會顯示最新的 1,000 筆疫情與 200 筆的噴藥紀錄。以 11 月以來降至每天兩位數的疫情來看,1,000 筆大約是 10 月下旬以後的紀錄。

限制 1,000 筆記錄並不表示 App 只能查詢最近一千筆的紀錄,它真正的意思是,如果查詢結果超過 1,000 筆,也只會在地圖上顯示日期最新的 1,000 筆資料。搜尋結果若少於 1,000 筆時就會全部顯示出來。

善用關鍵字

地圖查詢的關鍵字支援多重條件,例如:

查詢「2015-10 泉南里 東門」得到 21 筆資料,也就是搜尋範圍限制在2015年10月份泉南里東門路附近的疫情。其中「2015-10」、「泉南里」、「東門」這三個關鍵字順序沒有限制,中間只需用空格隔開即可。關鍵字組的個數也沒有限制,條件下得越多,結果更精確,每一組關鍵字都必須滿足才會顯示在地圖上。

TNDengue_12

疫情與噴藥紀錄同時搜尋

地圖查詢結果會同時顯示通報疫情與噴藥紀錄,例如關鍵字只輸入「泉南里」,結果如下:

TNDengue_15

某些疫情標示會特別的「紅明顯」,原因就是該座標不只有一筆資料。點擊疫情標示後,會顯示發生在該座標的所有通報紀錄,依日期排序,一目了然。

TNDengue_16  

開放平台提供的座標精度只到小數點第三位(據說是個資法保護),每 0.001 相隔大約是一百多公尺,所以常有同一地點出現一堆通報病例。大概就兩種含義:

  1. 該地為連續發生疫情熱區,估計這附近的住戶家裡應該被噴藥噴了很多次。
  2. 座標錯誤,可能是登錄資料時不明原因以該座標輸入。

點擊紀錄右邊的 [+] 或是每一筆紀錄本身時,就能把這筆紀錄列為常用項目啦!可選擇要新增「區」或是「里」,新增後在主畫面和統計圖表的常用項目就看得到了。只支援紀錄最近新增的三筆區別或里別資料喔!

TNDengue_17

點擊地圖上噴藥的圖示,就會顯示在該地點的所有噴藥記錄,也是一樣因為座標精度的不足,有可能出現多筆。

TNDengue_18 

TNDengue_19 

定位功能

在地圖查詢介面中,只需點擊右下角的LocationOn 圖示,就能打開定位功能。 

TNDengue_20

空白關鍵字只顯示最近 1,000 筆資料的特性,再把定位功能打開時,就能知道自己是否身陷疫情熱區,時時刻刻提高警覺,還是趕緊就近趕緊買個防蚊液吧!萬一買不到防蚊液,還可以這樣做:

TNDengue_Chicken  

關鍵字訣竅

  1. 關鍵字組中,包含「疫情」,則只查詢登革熱通報疫情資料。
  2. 關鍵字組中,包含「噴藥」,則只查詢噴藥資料。
  3. 日期的差異:開放平台的資料中,通報疫情包含「年(4位)-月(2位)-日(2位)」(例如 2015-11-01),但噴藥記錄卻只有「月(2位)-日(2位)」(例如 11-01),如果關鍵字組中包含年份,也只會查詢通報疫情。(不懂噴藥記錄為何沒有加入年份...)

統計圖表

從主畫面點擊「統計圖表」即可。

iOS Simulator Screen Shot 2015年11月18日 上午2.25.02  

分成日期跟月份兩種統計區間,點擊下方的標籤可切換。點擊圖表上面的圓點,會顯示統計的值。

通知中心

App 支援 iOS8 的通知中心,輕輕一滑就知道開放平台的資料更新到哪一天,再決定要不要點進去 App 撈資料,很方便喔!

TNDengue_Today  

關於「台南登革熱」

最後就是懇請支持啦~這麼好用的 App ,進入頁面時預設會載入廣告。

如果不想被廣告干擾的話,請從主畫面右上方點擊 TNDengue_21 ,購買「移除廣告」功能,NT$30 比一杯珍奶還便宜啊!請多多支持並鼓勵 本土型 App 的個人開發創作者如小弟我,讓我有更多的動力( ㄑㄧㄢ/ )來開發出更多的資料平台應用 App  (ㄇㄞˇ  ㄞ  ㄈㄥˋ  ㄌㄧㄡˋ  ㄟ  ㄙ  ㄆㄨˇ ㄌㄚ  ㄙ ),甘溫啦!

TNDengue_22  

 

後記

本來沒打算寫這個 App ,不過今年的蘇迪勒風災之後,台南的登革熱疫情突然間大爆發,關注通報病例變成很多台南人每天必要的功課。

說到關注通報疫情,大部份的人也只是加入台南市政府的 LINE,了不起再連線到市府衛生局網站,翻閱又臭又長的 Excel 表格,最多也知道「哪個里」昨天又多了幾個病例而已。然而在台南市政府資料開放平台上也有疫情資料,並加入了座標與 路/街 名稱,應該是比較有參考價值。可是我搜尋了 AppStore ,竟然沒有任何一支 App 使用平台上的登革熱資料,現今已是 App 爆炸的時代,實在是令人匪夷所思...

「那就乾脆自己寫一個吧!」沒有就自己搞一個,是我一貫信念。差不多九月中下旬的時候,這個專案正式啟動了,當時想說應該不難,很快就能搞好。

萬萬沒想到,這竟然是自找麻煩的開始。請聽我娓娓道來~(泡茶)

------

一開始,基礎的程式兩三天就寫好了,後來還加了一丁點美化的元素,倒也自用得開心。可是沒多久,問題卻漸漸的開始浮現...

某天發現,App 一開就閃退了,問題找了半天,發現是資料的問題,當天有些資料出現莫名其妙的 NULL 空值。好吧~加個判斷,很快就修好了。

過了幾天,發現某天「東區」的疫情出現 0 ,想說賴神再神,也不可能將疫情瞬間消滅啊!果不其然,審視原始資料,當天的資料變成「東  區」,兩個字的區其實都有這問題(北區、南區...)...嗯~好吧!再改,一律拿掉空格,問題,也是不大...

過了幾天,打開 App 竟然又閃退了。再檢查,發現竟然是座標的問題。座標錯了就錯了啊!怎麼會發生閃退?

原來是當天的資料,經度跟緯度弄反了!緯度欄位被填入經度座標 122.xxx,緯度值 > 90 度時發生閃退,TNND 真想罵髒話,再加了判斷式,修好了...

又過了幾天,我發現資料的發布方式改了,它先來個「截至2015/09/30」,再從 10 月開始,每天產生一個獨立連結。然後每天連結取得的資料,欄位變少,識別編號竟然就這麼沒了。

換句話說,撈資料的邏輯全改了,這一塊撈取程式得重寫,真是要吐血了!

所以我終於知道,為何 AppStore 上面沒有相關應用。有誰願意浪費生命,跟這種邏輯改來改去,資料也錯來錯去的人為低級錯誤,繼續周旋下去?

於是給它放著觀察幾天,看起來這個邏輯應該是確定了。好吧!再改一次,又花了點時間重寫撈資料程式,時間已經來到十月中下旬。

才開心終於又搞好了,卻在自己寫的 App 裡,看到住家附近被標上了疫情通報。

「恩~這個應該是又弄錯了吧!資料中很多座標都是錯的!」心裏雖不以為意,但還是有點擔心這可能是真的...

又過了兩天,某天下午家門口被貼了噴藥公告,預告後天後要被噴藥,我只有一天的時間準備!

Spraying10xx 

WTFUXK!沒想到竟然是真的。我的 App 提早兩天預告被噴藥個可能性,It works!不知該哭還是該笑?噴藥當天衛生局的人說,正因為這附近發生疫情,半徑 50 公尺內都是室內化學噴藥範圍。

噴藥前後的那幾天,打掃環境收拾善後,整個人累攤了。本來就沒什麼蚊子,噴藥後四天,我親手消滅了一隻蚊子,開始擔心被二次噴藥的可能性,於是恐慌症發作,每天盯著 App 查詢有沒有新的疫情...

再過了沒兩天,發現資料怎麼又怪怪的了?我撈到的資料筆數,跟官方發佈的數字,差距怎麼越來越大?

發現原來不是每天都有 API 串接,看來真的得改用 CSV 了。本來想放棄,但恐慌症驅使下,所以我又千辛萬苦搞定 CSV 的程序。嗯!幫自己按個讚!

可是...災難還沒結束啊!後來又發現特定某幾天的 CSV 根本吃不下來,研究了好久,發現是轉碼的問題。

現在幾乎都是 UTF-8 了,沒想到這個資料開放平台上,萬年 BIG5 碼神蹟再現啊!這已經是上個世紀的產物,終究...我還是解決了它。

看到這裡大家也應該知道了,說什麼開放資料平台,其實也只是把一堆本來的人為 Paper Work 放到平台上而已。如果本來就是用系統管理,就不會出現經緯度相反、BIG5 碼這種明顯的人為錯誤。

更可以推測,原始端應該不只一個人在做放資料這件事,應該是花了不少人力跟金錢,有做卻沒把事情做好,難道公家機關行事風格就這樣?

然後時間也來到十一月初,疫情也下降了,這個專案前前後後竟也花了我一個多月的時間。想想若只是自用,還真是不甘心啊~

所以決定再加把勁,讓它通過 Apple 審查上架,與大家分享吧!經歷漫長的審查過程(歪果人的感恩節),最終 App 就是大家現在看到的這個樣子了...

若各位覺得已經緩不濟急,那我只能泡好咖啡,對著電腦,路上無車無人,夜深無聲,跟大家說聲:

「對不起,我來晚了...」

今年的台南的登革熱疫情,已奪走了一百多條人命,並重創台南的觀光業,算是很嚴重的大事,但 AppStore 為何連一支 App 都沒有(或許是我沒找到)?其中的關連,或許值得大家一起思考,真正的問題到底出在哪裡。不論是弄個資料開放平台也好,或是一再的化學噴藥也罷,決定要做一件事的時候,目標應該定在哪裡?是要做好,還是有做就好呢?

 

其他補充:

「臺南市政府資料開放平台」網站
 
本 App 開放部分原始碼(與「臺南市政府資料開放平台」接介部分)
 
專案使用的第三方開放原始碼套件
PNChart
 
Hpple
 
MBProgressHUD
arrow
arrow

    benjenq 發表在 痞客邦 留言(2) 人氣()