[Android]Google Maps的申請、設定與使用
行動設備使用Location定位服務越來越火紅,很多人都有很多有趣的想法,像是利用Location查詢所在位置四週的商家資訊、將照片置入所在位置的經緯度方便分享及記錄、還有隨時可以追蹤好友所在位置等等等許多服務。雖然有了定位資訊,可是少了一個展示的平台,Google Map就是一個很好用又免費的元件,可以把經緯資訊展示出地圖資訊,方便閱讀及應用。
在android開發環境上要使用google map這個元件,並無法直接拖拉元件至畫面上,需要申請一組api key,然後設定到Layout資源檔裡,以下範例簡單的說明如何申請一組google map api key及設定Layout檔main.xml。
參考資料Location and Maps | Android Developers
1.如何申請指紋碼
要向Google申請服務的指紋碼,需要先在本機端產生MD5的指紋證書,再利用這個證書產生指文碼。
如何產生指紋證書呢?只需要在jdk的安裝路經bin目錄下,輸入
keytool -genkey - v -keystore 名稱.keystore
其中”名稱.keystore"請自行設定喜好的名稱,再來畫面會要求你輸入一些基本資訊,大概內容如下圖,密碼部份這個範例為test123。名稱姓氏、單位名稱、組織名稱、城市或地區名稱、州及省份名稱、國碼

完成後可得到需要的keystore

如果不想自己產生認證證書可以直接使用安裝android sdk自行產生的debug.keystore,路徑如下:
- Windows Vista:
C:\Users\<user>\.android\debug.keystore - Windows XP:
C:\Documents and Settings\<user>\.android\debug.keystore - OS X and Linux:
~/.android/debug.keystore
再來是利用指紋證書來取得指紋碼,只需要輸入:
keytool -list -keystore [路徑/檔案名稱] -storepass 密碼
其中"[路徑/檔案名稱]"可以是上一步產生的keystore或是直接取用android sdk產生的,密碼部份此範例使用test123,畫面如下,會產生一組認證指紋碼,把此指紋碼copy下來

向Google申請Maps API key,網址:http://code.google.com/android/maps-api-signup.html
需要同意條款及給於自行產生的指紋碼,把上一步所得結果貼到input裡,按Generate API key

然後會response一個金鑰及xml配置範例,直接copy範例裡的內容使用就可以了

以上申請流程就已經完成了,以下是如何使用此金鑰
2.建立Google Map Android專案
如何安裝Eclipse及android sdk請參考 使用Eclipse galileo 開發android軟體
New一個新的Android Project,給於project name、Application name、Package name、要建立的Activity及要使用的android sdk版本,因為要使用到Google Map,所以要選Target Name是Google APIs的,後面3 4 6 7 這些數字是sdk的版本,開發時可以限定最小的sdk版本為何,Google Map需要最少3以上的版本。

建立好專案後,把主要的Activity打開(在src目錄下),然後把extends從原本的Activity改成com.google.android.maps.MapActivity,然後再建立需要override的函數。
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
再來打開資源檔目錄下layout裡的main.xml打開,選擇main.xml變換成xml的編輯模式,然後把上面取得的Google Map xml範例內容全數貼到需要的位置上(依Layout排版不同可能有所差別,預設是在倒數第二行貼上)

再來切換到Layout模式,就可以看到元件已在畫面上了

再來可以試看看能不能跑,在專案名稱上按右鍵選Run As->Android Application

再來需要選擇要啟動的模擬器或是實際機器做測試,視窗分成上下二層,上層是啟動中的設備,下層是可以啟動的設備,要如何建立設備,可以參考使用Eclipse galileo 開發android軟體

這裡可以先Start模擬器,或是選擇Ok讓系統自行啟動

再Eclipse下方可以看到Console啟動的流程

等一下子後模擬器就啟動好了,這時需要解開銀幕鎖,按住右鍵依圖上方向解開鎖

有時啟動模擬器時,會有些程式來不及載入,所以會有以下畫面,可以選擇Wait讓它完成作業(建議)

ps.如果啟動不了時,可以再使用Run As步驟一次
理論上啟動後會出現以下錯誤,這是正常的,因為還有些地方沒有設定到

回到Eclipse專案目錄上,選擇AndroidManifest.xml來做一些權限的設定,首先Mainfest項目裡設定Use Sdk(建立專案時有設,就可以略過),Google Map需使用3以上版本。

再來選擇Permissions項目,增加程式所需要的權限,因為程式目前只需要上網取得Google Map的資料,所以給與Internet權限就可以了,設定如下圖。


再來因為有使用特殊的Lib,也就是Google Map Library,所以需要給於指定,設定方法如下圖。


再來啟動程式,此時模擬器已在上層(啟動中),直接選擇它再Run就可以了

因為沒有初始Google Map的位置,所以只會出現白白的一片

下幾章再來介紹如何使用Android Google Maps



請問有出"介紹如何使用Android Google Maps"這篇文章??
[回應]
"介紹如何使用Android Google Maps" 是否有這篇文章??
[回應]
yku Replay:
一月 17th, 2011 at 12:26 下午
被你發現我偷懶了!!!程式好像有!!這二天我再補上,..哈哈
[回應]
遊客 Replay:
一月 17th, 2011 at 2:51 下午
@yku, 大概什時會好??
[回應]
遊客 Replay:
一月 19th, 2011 at 10:37 上午
@yku, 嗨!!大大謝謝您!!我有收到了,還有您的教學文章不錯是否會出教學文章??
[回應]
yku Replay:
一月 19th, 2011 at 10:53 上午
最近有點瞎忙....會補上...
先給你看看有沒有用
[回應]
yku大大你好
你的這份教學文件寫得真好
我根據你的步驟也做到跟你一樣的結果
想請問你接下來的步驟該如何進行
最近剛好需要使用到這部分的研究
謝謝
[回應]
說好的"介紹如何使用Android Google Maps"呢Q_Q
yku大大這份寫得很棒呢
請問後續甚麼時候會寫呢?
[回應]
yku Replay:
三月 4th, 2011 at 9:44 上午
要等過一陣子了...好久沒更新資料了...好忙...
[回應]
大大~我現在也卡在這一步~等你補救啦(急)
[回應]
大大~我也卡在這一關了~等你補救啦:D
[回應]
~我現在也卡在這一步~等你補救
[回應]
可以麻煩你寄教學給我嗎?
因為最近模擬器急需要用到這部分內容
你的教學很詳細!讚!
[回應]
you write really great!!
would you send another teaching article to my mailbox?
[回應]
you write really great!!
would you send another teaching article to my mailbo?
[回應]
addd
[回應]
之所以是空的是因為你去申請API的signature跟你用來sign android app的signature不是同一個。跟有沒有給預設位置沒什麼關係。
[回應]
yku Replay:
十月 6th, 2011 at 12:04 下午
謝謝指教
[回應]
我電腦裡的指紋認證跑不出MD5格式 一直跑出SHA1格式 而且我設出的KEYSTORE是2048位元該怎麼辦
[回應]
我電腦跑出的認證指紋不是MD5而是SHA1的 而且設出來的KEYSTORE是2048位元該怎麼辦
[回應]
yku Replay:
十一月 23rd, 2011 at 2:02 下午
你可以重新建立你的專案...然後把我的程式copy進去...
[回應]
[儲存 joyce.keystore]
keytool 錯誤: java.io.FileNotFoundException: joyce.keystore (存取被拒。)
他會出現錯誤@@
有人說在把joyce.keystore改成 .\joyce.keystore或 c:/joyce.keystore
但還是不行了
是為什麼?
[回應]
yku Replay:
十二月 26th, 2011 at 3:22 下午
別放c:試看看?
[回應]
你好,寫得真詳細!!謝謝~真受用呢~>_<
請問有後續步驟的教學嗎??謝謝你~:)
[回應]