為什麼 Activity 介紹完突然跳到 Google Maps Android API 呢? 很簡單,因為這次專題要用囉XD
走到這,大抵Android架構、物件導向、Java程式、XML、Android SDK、UI設計、MVC架構、Google Maps都順過一遍了,App開發應該是要上軌道了 : )
一、Google Maps Android API 簡介
2013年2月,Android推出Google Maps Android API v2,使用全新的設計方式,改良地圖元件的畫面與效率,增加3D建築物,還有簡化的繪圖API。並已經在2013年4月停止舊的API。
[補充] 關於模擬器無法運行 Google Map Android API
Google Maps Android API v2 包含在 Google Play Service SDK,而我們使用的 Genymotion 模擬器為了避免商業爭議少了一些 library (如 google maps api、facebook SDK) 以至於無法使用。不過要安裝也十分簡單,找到你想裝的 library 載下來拖拉放到模擬器視窗即可安裝!
後來發現好像不好找,這裡提供一下連結:
http://rj-memo.blogspot.tw/2015/05/genymotiongoogle-play-service.html
二、Google Maps Android API 安裝設置流程
完成以下面的步驟,就可以建立好一個地圖元件。
- 用 SDK Manager 安裝 Google Play services SDK
- 新增一個 Google Map Activity
- 找到 googlemapsapi.xml 這個檔案,該檔的註解中有 Google Developers Console 的網址(很長很長)讓你登記使用 Google Maps Android API v2。
- 也可以用這個網址自己慢慢摸。Google Develope Console : https://console.developers.google.com/
- 一鍵登記後拿到 Google Maps API Key,把那個Key取代googlemapsapi.xml的YOUR_KEY_HERE
三、Google Map API程式撰寫
這是完成一個 Maps Activity 後該有的檔案
- googlemapsapi.xml:儲存與設定Google Maps API Key的資源檔案。
- MapsActivity.java:地圖元件。
- activity_maps.xml:地圖元件使用的畫面資源檔。
這裡主要是 MapsActivity.java 中有一些新寫法要學習。
1. 宣告地圖座標
地圖座標使用LatLng物件,LatLng建構子第一個參數表示緯度值,第二個參數表示經度值。
LatLng nkut = new LatLng(23.97918, 120.69686);
2. 標記位置
標記位置很簡單,使用addMarker即可。
mMap.addMarker(new MarkerOptions().position(curLoc).title("SELECT_LOC"));
3. 控制地圖鏡頭
使用移動地圖鏡頭到指定座標點,例如:
moveCamera(CameraUpdate update) animateCamera(CameraUpdate update) //有地圖移動效果
update為地圖鏡頭動作物件,必須使用CameraUpdateFactory類別建構CameraUpdate物件,例如:
CameraUpdateFactory.newLatLng (LatLng latLng) CameraUpdateFactory.newLatLngZoom(LatLng latLng, double) // 同時設定地圖縮放等級
所以合起來就變成:
GoogleMap map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); LatLng nkut = new LatLng(23.97918, 120.696867); map.moveCamera(CameraUpdateFactory.newLatLngZoom(nkut,15.0f));
四、歡樂的 DEMO 時間
一個非常陽春的demo如下,可以選擇台灣主要城市送出,然後就會在另一個Activity中顯示該城市的經緯度位置。
References
拿經緯度的好站 : MyGeoPosition
http://mygeoposition.com/
Android Tutorial 第四堂(2)設計地圖應用程式 - Google Maps Android API v2
http://www.codedata.com.tw/mobile/android-tutorial-the-4th-class-google-maps-android-api-v2/
Google Develope Console
https://console.developers.google.com/
Android程式設計 - Google Maps API v2 調整地圖中心點
http://nkeegamedev.blogspot.tw/2013/05/android-google-maps-api-v2.html
沒有留言:
張貼留言