(圖片取自https://www.denso-communications.jp/mapcode/whats.html)
科技來自於人性,但從沒想過會有一天需要自己寫程式
事情是這樣子的,工作了幾年,牽了一部車,內建的導航系統…居然不能輸入台灣通用的經緯度、TWD97跟TWD67座標。
只能透過查詢地址跟設施來選擇需要導航的目的地…,但這樣就很不方便,而且隨著時間的推移,很多新的地點是不會出現在內建的圖資資料裡面的。
而唯一可以透過輸入的,是一個叫做MapCode的東西。
「MapCode」???
上網查了很多,資料直指日本的導航機採用的座標系統,denso公司推出的「マップコード」。
相信如果有常去日本自駕旅遊就會知道。
嗯,然後台灣的資料幾乎是寥寥無幾,雖然在汽車論壇上有神人自製的網頁可供查詢,但難保有一天神人不會把它收起來,不再提供查詢使用。
因此…,心中便萌生了自己寫個程式的念頭!花了那麼多錢買了一輛新車,卻無法將導航機的功能發揮到極致,那怎麼行?!
不行不行不行!
但…話是這麼說,但自己又沒學過程式設計(如果大學修的計算機概論不算…),根本無從下手…。
剛好同事跟我提到了VBA(Visual Basic for Applications)
簡單講,就是依附在OFFICE裡面的VB,可做為二次開發使用的程式語言,基本上就是VB語言(不是.Net)
為什麼會選擇用VBA來做呢?
其實是因為筆電太舊了(Intel® Core™2 Duo Processor T6600,DDR2 4G的RAM…),Visual Studio都跑不太動…。
不過我還是用它寫了幾個小程式…,像是…:
- 座標轉換(經緯度←→TWD97←→TWD67←→電力座標←→Mapcode)
- 牛頓法(Newton's method)
- 一元二次方程式~一元四次方程式根式解(含實、虛數)
- 辛普森積分法(Simpson's rule)
- weddle's rule
- 求N階數值微分
- 求N階聯立方程式解
- 求N階反矩陣
本來還有寫一個用住址或設施名直接查找座標的程式,不過因為最近Google api授權方式的改變,暫不能使用惹。QQ
有空再來介紹……,如果有空的話…。
不過…,由於自己不是科班(完全自學),所以程式碼的部分就不現醜了…,大概只會講一下寫的時候的想法跟流程而已。