星期二, 1月 20, 2009

從 Google Maps 匯入地標到 Nokia Maps

我只是要讓手機可以線上同步POI有這麼麻煩嗎?

其實 Nokia Maps 3.0beta 已經整合線上 ovi 平台,可以同步自己的地標,但是目前只有 S60 FP2 的手機可以用,還無法支援 S60 FP1。而 Google Maps 的 mobile 版本也沒有提供存取 web 上「我的地圖」的功能。Papago 也沒有網路的服務,看來手機線上同步 POI 好像無解,我只好另外找方法。

在 web 上搜尋地標目前看來還是 Google Maps 比較方便,也可以把POI儲存起來統一管理,再來問題就是怎麼匯出來,方法就是把「在 Google 地球中檢視」的這個連結複製一下,然後把 url 其中有一段 "output=nl" 改成 "output=kml",然後貼到瀏覽器開啟,這樣就會下載 kml 格式的資料。

Nokia 用的 POI 格式是叫做 LMX,所以再來就是找個方便的轉換工具,這個不難,我最後找到的是去 http://poiconvert.free.fr/ 這個網站來轉換,不過有一個小 bug,就是選擇 UTF-8 encoding 的時候,它所產生出來的 lmx 檔案並沒有正確把 encoding 的設定寫進檔案中,但是內容確實是 utf8 格式的,所以解決方法就是把 lmx 檔案第一行修改一下:
原本是
<?xml version="1.0" encoding="iso-8859-1"?>
改成
<?xml version="1.0" encoding="UTF-8"?>
就可以了。

好了,快要大功告成了,把這個檔案傳到手機上開啟,沒有問題的話就會出現所有的地標了,再儲存到手機內就可以了。

Nokia Maps 和 Google Maps Mobile(symbian version) 的 POI 資料在手機上其實是存在同一個地方可以共用的,所以把 POI 存在手機上有個好處就是至少要開地圖的時候就可以有兩個選擇,也不用維護兩份 POI。

[註] 如果你的 POI 內容有照片連結的話,傳到手機上開啟的時候可能會發生此筆資料經緯度無法正確匯入的問題,我的作法是在 Google Maps 上面就一律把有照片內容的部分刪掉。