參加口罩地圖之亂
文章推薦指數: 80 %
– 也做過幾個網站,顯示分店銷售據點。
上述這些製作經驗,這不就跟找藥局的工具差不多嘛?於是也用Google Maps Place API ,把幾千間 ...
Skiptocontent首頁交換連結coinbase買$100美金送$10美金又快又便宜WordPress主機超便宜美國西岸ASP.Net+MSSQL主機可試用60天遠振主機優惠中超好用的域名註冊服務Gandi存款利率2.6%加入Bankee社群銀行EVGA結帳優惠代碼QSHDADTQRCR962FCotpear關於本部落格聯絡我Telegram:@su1205su❤打賞贊助[email protected]紅隊加好友每天會送禮本帳3130-3603-0059小帳8281-5359-1331巫師聯盟3949-4587-9808RSS訂閱 最近武漢肺炎疫情,又想起了2002年,讀國中的時候遇到SARS疫情時期的那份恐懼,上課或是出門到哪邊都要先量體溫,許多店門口都放酒精消毒用品,第一次知道什麼叫N95口罩。
但現在是2020年,醫護人員一樣血汗,但時代不一樣了,行動上網普及,資訊工具與開發方式百家爭鳴,政府還公發醫療口罩?又有什麼新梗呢?大概是口罩地圖之亂吧!2020/2/2的時候大家瘋傳一個超商口罩掃貨地圖……呃不是,是超商口罩現況回報的網站,畢竟都2020年了,超商POS機的數據已經連網了,超商這麼佛心把資料放出來給大家查?結果想得美,原來是一個台南的大大寫的,超商口罩庫存量的資料來源,是仰賴老百姓對資訊工具的使用熟悉度和公德心。
那個網站當天晚上就連不上了,後來就看到新聞科技防疫|自製「超商口罩地圖」的工程師:地圖上線6小時,我收到60萬Google帳單,隔天2/3晚上政府宣布超商不賣口罩,並改成實名制購買,7天內有限購買數量。
2/4起超商也不賣口罩了,2/6變成藥局實名制口罩時代,大家都變成改在藥局排隊尋找ONEPIECE。
宣布改成藥局販售的時候,有些部落客手腳很快,例如硬是要學-全國健保藥局地圖用免費的Google我的地圖功能把健保藥局名單匯了上去。
看到全國健保藥局地圖的時候,突然有個大膽的想法:–之前自己有做過一個佛系寶可夢玩家-寶可夢VIP道館,每週從Google地圖的URL爬VIP道館的發券資料,再處理轉換成自己看的資料。
–有時候到不認識的地方,也可以查到附近有哪些VIP道館,所以有做過查詢附近VIP道館的功能。
–也做過幾個網站,顯示分店銷售據點。
上述這些製作經驗,這不就跟找藥局的工具差不多嘛?於是也用GoogleMapsPlaceAPI,把幾千間藥局的中文地址轉成經緯度座標,弄了一個懶人找口罩–離我最近的口罩購買處的網頁,自己的工具自己動手做。
v1.0初版靜態資料我這個路癡+方向感白癡很討厭看地圖,所以操作畫面上根本沒有打算要放地圖,初版就是透過HTML5的GeolocationAPI取得裝置當下位置,然後再換算直線距離(純粹用上網找的球體上求兩點距離算法,在用戶端的瀏覽器上運算,沒有使用GoogleMaps的DistanceMatrixAPI),把附近藥局資料,用卡片清單介面顯示出來而已。
自己用來查一下應該很方便。
不必忍受別人的程式上面可能有廣告,被追蹤,還是有什麼多餘的步驟或流程。
v1.1改接OpenData的藥局資料與口罩庫存量後來2/6藥局口罩正式開賣,也從g0v口罩供需資訊平台看到政府放出來的OpenData,真是官方逼死同人,上面已經幫人處理好了每間藥局的經緯度座標,還有各藥局的口罩庫存量?許多資料工具標榜「即時」,但有點資訊素養就知道,要先釐清資料從哪裡來的?多久更新一次?才知道是真即時,還是商人的騙人話術。
那麼藥局的口罩庫存量的數據是哪來的?原來也不是即時更新,而是隔一段時間才會從一個系統同步到另一個系統:–(官方)口罩售出,藥局刷健保卡之後,健保局的系統會扣庫存–(官方)每隔一段時間,會將上述的庫存數量,更新到一份「健保特約機構口罩剩餘數量明細清單」的csv檔案–(民間)再隔一段時間,一些民間開發者會把剛剛的CSV分流成JSON格式或GraphQL的資料–(民間)大家再接這邊的資料,寫成各種口罩地圖應用。
所以說從口罩售出之後,要經過上述這麼多段資料同步處理時間的延遲,然後還有發號碼牌作業、藥局有「我流銷售法」的情況,真的就算口罩地圖看到有庫存,還是有滿大機會買不到的!做資訊程式就是這麼可悲,常常要假裝自己有解決問題…這邊開始程式又變肥了,乖乖把程式改成接上口罩庫存量的資料,多了爬蟲程式去爬OpenData的資料然後存在資料庫。
後續OpenData還多了一個updated的欄位,顯示每家店資料是啥時更新的,但是如今大家都知道,這些更新時間、庫存量,也只是顯示身體健康的…v1.2增加防疫新聞資訊做來自己玩玩而已,也沒有登錄到什麼公開的地方,但是這時候在g0v的登錄清單上,民間開發者做的相關應用已經有二三十種了,操作畫面多半是以地圖為主,還有一堆篩選器功能,然後除了網頁版的,還有Line聊天機器人,Telegram聊天機器人,iOS捷徑的,更厲害的還有幫藥局設計叫號系統的,實在是非常厲害。
大家真的對防疫這麼有責任感嗎?大概是因為這些開放資訊資料僅憑單純的URL就可以存取,使用者使用時也不用什麼註冊登入之類的步驟,程式有問題也不會怎樣。
之前做「附近的VIP道館」的時候,無意發現這類玩意有一個有趣的應用,當初因為想要分析有多少人使用「查詢附近的桃園VIP道館」功能,以及都是哪裡的人在查,所以是有記錄一些操作資訊。
也就是說,如果小明開發類似服務,貼連結叫我試玩一下,發生以下的對話:2020/2/3013:50小明:我做了個東西,來試玩一下網址是…2020/2/3013:51我:酷喔,還滿準的,我附近的藥局都有顯示2020/2/3013:52小明:你現在在幹嘛呀?2020/2/3013:52我:我在上班呀2020/2/3013:52小明:你是做啥工作的?2020/2/3013:52我:資訊業的如果程式並且有做使用記錄機制+手機那時候的定位很準+特定時間點(甚至只有我在用,那根本不用時間點了),上述種種條件滿足之下,從本段範例對話,小明就可以從系統記錄得知我在哪邊上班。
除非那個地方是一棟辦公大樓,而且從1~10樓有不同的資訊公司,小明只有1/10的機率猜到我在哪間公司上班。
這個問題就跟共享機車服務某種程度上可以用來窺探隱私一樣…其他還有一些有趣的用法,例如:–弄一個會員註冊功能,號稱可以把某藥局加到最愛,更方便查詢,或是連續登入一週可以抽口罩之類的,如此一來就可以更方便蒐集到單一使用者的歷史行蹤。
–科技水平沒這麼高的,弄個google表單還是用chatisfy弄個FBchatbot來騙人留個資抽口罩,更是零資訊建置成本,騙個資馬上就上手。
–號稱有「口罩進貨提醒通知」,Android手機可以做網頁推播,或是FB/Line/Telegram弄個聊天機器人,然後在選舉的時候搖身一變,推播一些有的沒的訊息。
細思極恐,不可不慎呀!口桀口桀,所以我的懶人口罩地圖就沒有特別埋記錄了,我也不太敢用別人的口罩地圖查詢工具。
口罩地圖上線沒幾天,某天晚上突然聽到許多北部人收到國家級警報http://bit.ly/2SpSxeT,1月31日曾於北北基重要景點與鑽石公主號郵輪旅客密切接觸者,請進行自我健康觀察,政府的訊息竟然還用國外的縮網址?看到bitly的反射動作就是在後面接個加號http://bit.ly/2SpSxeT+查詢點擊的概況,然後如果縮網址公司裡面有匪區工程師,又發生「技巧性資料遺失」,讓轉址轉到其他網站去呢?口罩查詢需求衍生出的各種可怕的邪惡應用,實在讓人不寒而慄,於是網站上又增加了一塊防疫新聞資訊的連結。
v1.3加上休息時間我是只有一三五才可以買公發口罩的,根本沒預料到口罩這麼難搶,平常下班後口罩都賣光了,唯一的希望只有禮拜天了。
但是禮拜天下午出門找口罩,使用敗口罩的Linebot,或是當初那個做超商口罩地圖的大大做的新版網站,卻遇到很大的問題!地圖上一看滿滿的綠色的庫存充足標記,根本只是幻覺,一堆藥局禮拜天沒營業啊!還要多點一下看營業時間然後才發現沒營業,有的連營業時間都沒顯示,存心想讓人白跑一趟,增加交通工具的碳排放量。
痛定思痛,我的口罩地圖上也是只有顯示附近有哪些店,沒有顯示營業時間,只好來修改一下,看了一下OpenData,至少有4個相關欄位:–available欄位的資料是像「禮拜天上午休診」、「禮拜天晚上休診」一大串中文–note跟service_note,看起來最像人話,就是亂七八糟的註記,後來service_note活沒多久又被砍了。
–service_periods,資料是21個字的NNNNNNYYYYYYYYYYYYYYY,前7位數代表周一到周日的早上,N代表有開,Y代表沒開…想知道每家店禮拜幾+幾點開始營業+幾點有營業,就能做出查詢的當下,沒開的店就直接不要顯示了,但不知道下午休診的「下午」究竟是幾點到幾點?還有早上有營業,但是下午才開始賣口罩的,店家就這麼喜歡有人打電話去問他們幾點上班賣口罩?資料亂七八糟,要顯示出完美的答案,似乎是不太可能。
做資訊程式就是這麼可悲,整天聽別人說要上太空,被人使喚把時間浪費在一些無用的地方,然後許多基本的資料都沒人整理…總之後來又把東西通通加上去,並顯示哪時候休息的資訊。
v1.4加上OpenStreetMap顯示地圖自製的口罩地圖一開始只有卡片介面條列附近的店家資訊跟距離,但有些店家看似距離很近,看路名卻完全不知道在哪?雖然我不喜歡看地圖,看來還是得放個地圖,比較方便吧。
GoogleMapsJavaScriptAPI用太多要錢,發現有個叫Leaflet的地圖套件,裡面是用佛心免費的OpenStreetMap,親手試了一下,以HTML5GeolocationAPI拿到的位置為中心點,並在地圖上打上藥局的位置,口罩數量>10的就打上綠點,點了會跑出infoWindow,程式碼還比GoogleMaps的API精簡很多。
PokemonGO的遊戲也是從2017年起改用這套OpenStreetMap(OSM),所以玩家都很熟悉OSM的「圖資問題」,有些地方明明沒有路,但地圖上卻有路;有些地方明明有路,在地圖上卻是一大坨空曠區域,反正地圖只是參考輔助用,就不要計較太多了。
把藥局的點打上地圖就發現,資料視覺化就是一個照妖鏡,來源的Opendata幾乎只有中文地址是正確的,其餘則有各種狀況:–經緯度座標點跟實際位置誤差達幾百公尺的(例如得康藥局:桃園市中壢區龍岡路二段89號的位置不在24.939096,121.231292,差了近800公尺,)–只有地址對,藥局名稱&經緯度座標都不對的(例如24.947143,121.228543的同慶大藥局)–在地圖上找到庫存充足的藥局,卻有千百個已售完的情況,還有還沒開賣就已售完的(不是發號碼牌的),非常混沌。
本來以為藥局的經緯度座標有誤,是因為用GoogleMapsPlaceAPI直接轉換中文地址後沒有再人工校對,但是比對我之前用GoogleMapsPlaceAPI轉出來的資料,GoogleMapsPlaceAPI的轉出來的經緯度座標都是有正確對應到中文地址的,那麼政府Opendata裡的藥局經緯度座標錯誤資料,究竟是哪來的?後來去github上發issue回報藥局的正確位置,來源資料也就修正了。
也許直接幫每間藥局建一個聊天室,有啥奇怪的狀況直接讓民眾在上面回報,使用者邊排隊還可以邊聊天或是玩小遊戲,這樣可能會更實際一點,但這聊天室的管理,又要仰賴老百姓對資訊工具的使用熟悉度和公德心…v1.5加上點選地圖重新定位功能如果是電腦開啟網頁,HTML5GeolocationAPI拿到的裝置定位資訊,誤差非常大,於是又增加了一個點選地圖,以點選的位置重新計算的功能。
這中間又遇到一個插曲,每半小時爬回來的藥局和庫存資料,都擺在一個虛擬主機(共享主機)的MSSQL裡面,DB容量剩不到200MB,想說到時候可以依據歷史資料,做一些比較有用的資料分析,例如通常每天幾點會補庫存、每天通常幾點會賣光、推測郵差補貨路線,然後用LINENotify通知我,結果才跑個幾天,資料庫空間竟然爆了!看來店家資料跟庫存量應該要分開存才對,但懶得處理,後來又改了一次爬蟲程式,沒用到的資料就不存了,舊資料也不留了。
v1.6藥局+衛生所時代藥局口罩時代的第二個週末來臨,政府又有新的作為,宣布衛生所也開賣公發口罩。
網頁上本來共XXXX間藥局的字樣,通通都要修改了,地圖程式要改嗎?打開地圖一查,尬電姆!為什麼附近的衛生所都沒顯示?難道OpenData裡把衛生所擺在不同的json節點?從政府的公告查,原來不是所有的衛生所都有賣,桃園地區有賣的衛生所也才開放3間,所以衛生所很難找是正常的,不要緊張。
v1.7網購口罩時代發文後快二個多月又回來更新,從2月到現在又有不少變革。
3月中開始開放網購訂購口罩,4月初也變成不限身分證單雙號,因為手機之前就有裝健保快易通的APP,所以就改用線上訂購了,不用再一家一家跑,連口罩地圖也不用看了,還能減少藥局人員辛苦包裝與販售口罩的工作量。
生活中充滿各種數位落差,例如線上會議不能用zoom要用啥軟體?盜版影音網站收了要去哪追劇看電影?每天都在玩手機但不知道怎麼買口罩?周遭仍有許多需要幫助的人,而我們卻無能為力…。
程式每天仍在排程自動更新庫存資料,但現在還沒想到網購口罩時代,口罩地圖要怎麼轉型,使用者需要知道的資料只有開賣時通知我、下次什麼時候可以再訂、哪邊取貨、哪種付款方式最優惠,(繳費跟取貨時官方會通知),還有各種疫情謠言澄清,好像也沒甚麼功能好做了。
結論防疫人人有責,這次的低水平懶人玩具製作經驗也受益匪淺,知道如何用爬蟲把DB灌到爆掉,用免費的地圖API等等。
寫這篇文章的時候,g0v上的口罩地圖的相關應用列表已經有將近百種。
可惜在藥局口罩時代,口罩是用健保卡實名制購買的,不然這些口罩地圖通通都會接上金流,保留更多使用者個資,變成口罩代購/預購工具了。
這篇文章有幫助到您嗎?歡迎點此打賞贊助相關文章(系統推薦)投LINE廣告不用透過代理商了!會竊聽聊天訊息當廣告投放依據嗎?2020/3本月份有兩則LINE的重要新聞,一個是LINE的其中一個廣告服務開放讓直客直接操作,一個是LINE在中國的開發據點爆發個資竊取危機,來稍微研究一下。
LINE啟動中小店家數位加速整合方案,廣告平台開放直客投放...臉書FB廣告為了iOS14改版,ROAS大跌把數位廣告行銷人員都整慘了最近Apple對於iOS的隱私保護相關功能不斷推陳出新,有各種方式提醒使用者APP目前正在用麥克風、用相機、取得所在位置,APPStore也有一堆揭露資訊告知每一個APP...要升級新版GA4(GoogleAnalytics4Property)嗎?4個要與不要的理由想要偷看使用者在瀏覽網站時的行為,最簡單的就是送資料到GoogleAnalytics裡面,不少苦命的技術人員可能都接受4種不同GA追蹤碼的埋碼大戰荼毒,從最早的–ga.js(_gaq.push),...各部會線上登記振興加碼券竟然用了這個真的把我嚇傻了又是內容農場標題產生器…三倍券推出後,文化部、體育署、農委會、客委會也推出各種加碼券,前幾天看到聯合新聞網的一篇新聞砸2千萬建網站、傳簡訊農遊券最燒錢,新聞內文摘要如下:–農遊券:網站建置再加上行銷、中籤簡訊費用,合計高達2000萬餘元,–動滋券:花1100萬元建置網站–藝FUN券:App建置系統花費745萬元–客委會:...繼續閱讀...iRent共享機車教我的8件事繼2019年的GoShare共享機車教我的10件事,大桃園地區終於在2020/2月起也開放iRent共享機車(線上租機車)的服務了,iRent的爸爸是和運租車,講到和運租車無人不知無人不曉,就是台灣知名網路迷因「和運怎麼都知道?」「你他媽那是我們的車」的那個和運。
...三小招提升網頁PageSpeed分數,優化網頁開啟速度與WebVitals指標有在追蹤使用者體驗的各種心理學研究,應該都有聽過網頁開啟速度的X秒原則,從西元二零零幾年到現在,在各種文獻都有不同的X數值,總之網頁開啟速度盡量越快越好。
Google也說過載入速度會當作SEO排名因素之一(OfficialGoogleWebmasterCentralBlog:...文章導覽把CorelDRAW的煩人廣告關掉三小招提升網頁PageSpeed分數,優化網頁開啟速度與WebVitals指標載入留言搜尋站內文章搜尋關鍵字:近期文章Google地圖應用工具QuickBuilder體驗測試心得2022-03-07把MicrosoftSQLServer的tableschema和資料轉到MySQL2022-02-16電腦開了這個之後,害別人用了animate.css樣式庫的網站顯示異常2022-02-07LINE新年詐騙今年不發貼圖改發紅包2022-02-068種英文和中文的Wordle猜字遊戲打發時間真好用2022-01-30中華郵政專用信箱使用心得分享2021-12-18某商家在蝦皮標錯價的電商UI功能研究2021-11-1440個Windows使用者轉用macOS碰到的問題經驗分享2021-11-13你也成為免費SSL的受害者了嗎?2021-10-05超過20間超市與連鎖品牌的紙本五倍券優惠懶人包2021-09-22標籤apiappapplebootstrapchinaCKEditorcsscss3editoremailfacebookFBflashformfreeGAgmailgooglehackHTML5HttpsicpiosjsLinemacmapmobileRWDSEOserverUIuxWebwebfont中壢個資外洩小額支付桃園淘寶物流網路開店行銷轉換率金流分類Google分析(5)使用者介面(22)兩輪賤民(4)吃喝玩樂(18)嘴砲(14)大中華市場(8)大會公告(2)工具人(18)玩具(7)看新聞會與事實脫節(4)網頁設計(48)讀書心得(4)資訊服務(44)
延伸文章資訊
- 1【前端筆記】口罩地圖製作筆記 - Medium
... 方便民眾們查詢購買. “【前端筆記】口罩地圖製作紀錄” is published by Jasmin in Jas's Note. ... 這次想來跟風一下,順便挑戰沒接觸過的地圖API
- 2熬夜做出「口罩地圖」!這群用鍵盤救國的熱血工程師 - 美麗佳人
這一寫就是6個小時的通宵作業,期間女嬰醒來兩次,他回身安撫,便又轉身埋頭寫程式。為了快速獲取超商位置,他橋接了google的「Place API」付費服務,只要 ...
- 3藥局查詢指南- 口罩地圖api的推薦與評價,GITHUB
口罩地圖api 在示範:使用Vuejs 結合Open Street Map 製作口罩地圖- YouTube 的評價; 口罩地圖api 在Fw: [問卦] 誰發明口罩地圖啊? - Mo PTT 鄉...
- 4參加口罩地圖之亂
– 也做過幾個網站,顯示分店銷售據點。 上述這些製作經驗,這不就跟找藥局的工具差不多嘛?於是也用Google Maps Place API ,把幾千間 ...
- 5寫在口罩地圖上線六個月後的筆記
口罩販售藥局的坐標定位與確認–發佈第一版地圖 口罩地圖. 臺灣對COVID-19的防疫成績斐然,除了自身 ... 剩餘口罩API更新頻率調整–發佈第三版地圖.