先前利用了六個篇幅講述如何使用PHP下載政府csv格式的開放資料,後來我就每天在晚上十點以後去看每日的庫存狀況,接著就成了一種常態。除了查看之外,我又好奇這資料到底意義在哪?所以順手將資料copy到iPhone的Numbers裡,又利用Numbers的圖表功能製作了每日趨勢圖。
因此,我也有「資料」,我決定將這資料存成csv格式,檔案就是mask.csv。這次我將這檔案存在我的GCP上,同時我還申請了IBM Cloud並且開通PHP container。之所以這樣做的原因有:1) 看我的PHP及JavaScript的相容性,2) 雲端服務的相容性(雖然這個版本有關)。
在GCP上建立了一個folder "stock",folder內又建一個sub folder "data"存放檔案mask.csv。
在IBM Cloud 的PHP container是一種Serverless的服務,免費的,但是要維持服務運作,每14天內至少要更新一次。檔案先在local內設計再上傳更新,所以我也建立了一個folder “stock”,folder內又建一個sub folder “data”存放檔案mask.csv。
因為我沒有安裝PHP emulator,所以我會先在GCP上編輯程式,然後在下載到我的PC,再重新上傳到IBM Cloud。
回到程式。
我還是要用PHP,因為IBM Cloud 的關係,所以檔案名稱是index.php
沿用先前的PHP開頭碼。
利用先前學的PHP能力,這次因為讀的是自己的檔案,所以要用fopen(),一樣用fgetcsv()轉換成陣列。
開始進入javascript 與canvas,做顏色及變數設定。當然還是一樣用json_encode()將PHP的資料傳給javascript。
因為這次要做趨勢圖,所以要用moveTo(), lineTo()畫線,每一顏色的線條要先用beginPath()開頭,然後stroke()做上色。
上線、上刻度…
最後就是把每個縣市的趨勢線條畫上。
最後藉機做一個實驗,將用戶的地理座標標示出來。
完成。
先看GCP上的(參考連結http://35.188.48.191/mask/stock/)
再來看IBM Cloud上的(參考連結https://jmslee.mybluemix.net/mask/stock/index.php)
由於我在GCP上未做SSL認證,所以無法使用https://呼叫我的網頁,因此無法正常使用geolocation。這部分你可以開啟Chrome Developer tool來觀看提示。
以上又是一個快速的檔案資料演練。