這一篇是我在How to use Google Maps data in mobile applications的中文翻譯,網址在如何在手機應用程式中使用Google地圖資料!
為了備份,並轉貼在此:
這篇文章會解是在手機應用程式中如何使用Google地圖的資料。
Google地圖提供允許用簡單的HTTP請求來存取其表象化狀態轉變(REST)的服務,所以這樣可以很容易地整合到手機應用程式中。
申請Google地圖API金鑰
注意:使用這個免費的Google地圖APU金鑰程式會違反Google的條款和條件 (10.8節),假如你想要使用這個例子中的Google地圖API你應該購買企業許可證。
首先你需要在這一頁申請:
http://code.google.com/apis/maps/signup.html
一旦你申請了,你會取得一把金鑰(一個簡單的字串)這樣你就可以使用來查詢Google的地圖服務。
靜態地圖
標準的Google地圖程式碼是可以用於Web應用程式的,然而,它包括了很多的Ajax函式,假如你想要建構手機應用程式的話可能不太有用,解決的方法是使用靜態地圖服務可以允許擷取單一的影像,這些影像可以容易地用在手機應用程式中。
靜態地圖服務支援不同的影像格式(png32、GIF、JPG)及自訂的影像尺寸,這樣你就可以取得不同目的的完美影像,舉一個例,假如你想要擷取位置在:
- 緯度: 41.867878
- 經度: 12.471516
你可以用HTTP GET的請求方式來簡單地擷取這個URL:
http://maps.google.com/staticmap?center=41.867878,12.471516&format=png32&zoom=8&size=240x320&key=<API_KEY>
這個方式可以取得一個寬240像素高320像素的PNG32的影像,其中心點在(41.867878,12.471516),並且其縮放及別為8(縮放的範圍從0到19)
Geocode一個地址
從Google地圖文件:
Geocoding是轉換地址(像是”320台灣桃園縣中壢市永泰街129號”)為地理座標(像是緯度24.958686,經度121.231145)的程序
下面的範例描述建構一個應用程式來顯示使用者輸入的地址,首先你需要geocode地址到地理座標,
要這樣作,Google地圖提供另一個表象化狀態轉變服務可以容易地用簡單的HTTP請求存取,
假如你想要地理編碼這個地址
320台灣桃園縣中壢市永泰街129號
從你的程式碼請求這個URL
http://maps.google.com/maps/geo?q=320台灣桃園縣中壢市永泰街129號&output=csv&key=<API_KEY>
然後你會取得這個輸出:
200,6,24.958686,121.231145
在這裡:
- 第一個數字是一個編碼,在這裡(200)意思是地理編碼是成功的(完整的狀態編碼列表見:[1])
- 第二個數字給定地理編碼的精確度(從0到9 – 最大精確度)
- 第3個及第4個數字表示地理編碼地址的緯度及經度,所以這些座標可以用來透過靜態地圖服務擷取地圖。
還有你會看見在地理編碼請求中有一個’output’參數,這個意指你可以選擇你喜歡的輸出格式,支援的格式有:
- xml
- kml (跟xml相同但是不同的Content-Type)
- json (對手機應用程式不是真正有用)
- csv (逗號分隔值)
代理伺服器的使用限制
因為你的Google地圖API金鑰受限於一個特定的URL才能存取地圖服務,所以你需需要設定一個代理伺服器這樣才可以從手機應用程式接收HTTP請求然後並轉送這些請求給Google Maps REST URLs,接著Google回應給行動客戶端。
另外也要知道每天的請求數目的限制,包括靜態地圖及地理編碼,對於個人使用來說是夠用的,但是你假如你計畫開發商業服務時需要知道這一點。
範例應用程式
一個J2ME範例應用程式,使用上述的方法,可以在這一頁下載: Google Maps J2ME 測試
在這例子裡使用的Google Maps J2ME API原始碼可以在這裡下載:J2ME Google Maps API
恭喜獲得藍眼關注哦,ㄚ晟投一票支持你!
噫?這是怎麼一回事?我什麼時候被關注的?不過感謝您的告知及支持喔?