google map android api v2 setup guide
DESCRIPTION
Google Map Android API V2 setup guide, 按圖施工保證成功TRANSCRIPT
大綱
• Google Maps Android API V2
• 申請Google Map API Key
• 載入Google Map - GMap
2
環境建置
Google Maps Android API V2
3
步驟
1. 安裝 Google Play services SDK
2. 取得SHA1 憑證
3. Google APIs Console取得API key
4. 設定權限
5. 加入地圖
4
V1 / V2比一比
• V1 的專案版本一定要為GoogleAPI,V2則免。
• V1 的地圖元件為MapView,現已停用。V2之後改為 Fragment
5
新增專案Maps
package name需與金鑰相同
根據Google 官方文件操作https://developers.google.com/maps/documentation/android/start
?hl=zh-TW
6
安裝Google Play services SDK
• 請由 SDK Manager 中安裝[Google Play services]
7
匯入到Eclipse中• FileImport
• Existing Android Code Into Workspace
– <SDK>extras/google/google_play_services/libproject/google-play-services_lib 專案。
8
勾選Is Library
• 請勾選Is Library,否則無法從外部專案匯入。
會在畫面左側看到這個lib
新增專案GMap
在專案中匯入libs
• 對專案目錄點右鍵PropertiesAndroid
• Add libraries,請記得不要勾選 Is Library。Lib本身才要勾選。
• 完成如右圖
12
產生SHA1
• 在cmd下切換到 cd C:\Program Files\Java\jdk1.7.0_10\bin
• 輸入:
– keytool -list -v -keystore C:\Users\user\.android\debug.keystore
• 以上紅字會因為不同電腦或軟體版本有所不同
• 金鑰密碼請直接按ENTER
13
找到SHA1 那一行,其他不是
14
自己產生debug.keystore
• C:\Program Files\Java\<JDK>\bin>輸入:
• keytool -genkey -v -keystore <完整路徑>debug.keystore -storepass android -alias androiddebugkey -keypass android -dname"CN=Android Debug,O=Android,C=US
– http://stackoverflow.com/questions/8576732/there-is-no-debug-keystore-in-android-folder
• Win7 C:/Users/<帳號>/.android/
• XP Document and Settings (路徑包含空格會造成錯誤,可將檔案產生在其它位置)
15
Google API console
• https://code.google.com/apis/console/#project:48090014903
16
啟動 Google Maps Android API V2服務
17
API Access取得API Key
18
格式:SHA1;package name
package name改成自己的專案名稱
19
修改AndroidManifest.xml -1
• 在<application>元素中加入子標籤
• your_api_key請填入剛剛申請好API KEY– <meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="your_api_key"/>
– <meta-data
android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
20
修改AndroidManifest.xml -2• 加入權限
– <permissionandroid:name="com.example.mapdemo.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
– <uses-permissionandroid:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>
• 其中com.example.mapdemo換成自己的。
21
加入其他權限
1. <uses-permission android:name="android.permission.INTERNET"/>2. <uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/>3. <uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>4. <uses-permission
android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
5. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
6. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
• 5, 6項只有要用到定位功能時才要加入,但通常都會用到所以就加吧
22
Layout(fragment_main.xml)內容要改為 fragment
<?xml version="1.0" encoding="utf-8"?><fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent"android:name="com.google.android.gms.m
aps.MapFragment"/>
以上請將layout.xml 內容全部取代掉即可,不用改東西
23
修改MainActivity.xml
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. fragment_main);
//只載入畫面無進一步動作
}
}
載入Google Map
25
除錯小提醒
1. 請確認使用 debug.keystore來產生 SHA1
2. 記得在 AndroidManifest.xml中加入 API Key 、meta data與相關權限
3. 確認網路暢通
4. 有無匯入 Google Play services libraries
26
Package 要修改的地方
如果要執行於模擬器則較麻煩
• 因為模擬器並未安裝Google Play service,所以要另外安裝。
• 建議實機操作
• http://nkeegamedev.blogspot.tw/2012/12/android-google-maps-api-v2.html#uds-search-results
28
載入官方example
• https://developers.google.com/maps/documentation/android/intro#sample_code
• 改為自己的 package name 與 API Key
29
Google Map Javascript V3
• https://developers.google.com/maps/documentation/javascript/tutorial?hl=zh-tw
• 使用 Javascript來取得地圖網頁• 教學:
– http://nkeegamedev.blogspot.tw/2012/12/android-google-map-v3-1.html
• 好用的生成器:http://www.nap.st/google_map_generator/?lang=zh-TW
30
資料
• https://developers.google.com/maps/documentation/android/start
• 原有的怎麼辦?還是可以用,但無法再取得V1 的API Key了。
• http://www.moke.tw/wordpress/computer/advanced/410• http://nkeegamedev.blogspot.tw/2012/12/android-
google-maps-api-v2.html• http://saleh360.blogspot.tw/2012/12/android-running-
google-maps-api-v2_12.html• http://fecbob.pixnet.net/blog/post/38591179-google-
maps-android-api-v2%E4%BD%BF%E7%94%A8%E5%8F%8A%E5%95%8F%E9%A1%8C%E8%A7%A3%E6%B1%BA
31
資料
• 中研院GIS中心• http://gis.rchss.sinica.edu.tw/• 中研院GIS中心工具集
http://gis.ascc.net/ISTIS/tools.html• http://simonown.wordpress.com/2009/11/
22/aa0007/• 金門大學 http://gogkmit.wikidot.com/start• 畫出GPS路徑
http://changyy.pixnet.net/blog/post/28058989
32
資料
• 座標轉換http://gis.thl.ncku.edu.tw/coordtrans/coordtrans.aspx
• 景點分享
• http://www.wikigps.com/
33
補充資料:取得Google MAPs android API V2
• http://wangshifuola.blogspot.tw/2013/01/androidgoogle-maps-android-api-v2.html
• http://www.moke.tw/wordpress/computer/advanced/410
• 按部就班http://cheng-min-i-taiwan.blogspot.tw/2013/04/google-maps-android-api-v2-android.html
34