Google API使用--Android的第一個項目--Google地圖
開發歷程
一.熟悉Google API
(1)MapController
控制地圖移動,伸縮,以某個GPS座標爲中心,控制MapView中的view組件,管理Overlay,提供View的基本功能。使用多種地圖模式(地圖模式(某些城市可實時對交通狀況進行更新),衛星模式,街景模式)來查看Google Map。
常用方法:animateTo(GeoPoint point) setCenter(GeoPoint point) setZoom(int zoomLevel) 等。
(2)MapView
Mapview是用來顯示地圖的view, 它派生自android.view.ViewGroup。當MapView獲得焦點,可以控制地圖的移動和縮放。
地圖可以以不同的形式來顯示出來,如街景模式,衛星模式等,通過setSatellite(boolean) setTraffic(boolean), setStreetView(boolean) 方法。
MapView只能被MapActivity來創建,這是因爲mapview需要通過後臺的線程來連接網絡或者文件系統,而這些線程要由mapActivity來管理。
需要特別說明的一點是,android 1.5中,map的zoom採用了built-in機制,可以通過setBuiltInZoomControls(boolean)來設置是否在地圖上顯示zoom控件。
常用方法:getController() getOverlays() setSatellite(boolean) setTraffic(boolean), setStreetView(boolean) setBuiltInZoomControls(boolean)等。
(3)MapActivity
管理Activity的生命週期,爲mapview建立及取消對map service的連接。
MapActivity是一個抽象類,任何想要顯示MapView的activity都需要派生自MapActivity。並且在其派生類的onCreate()中,都要創建一個MapView實例,可以通過MapViewconstructor (然後添加到View中ViewGroup.addView(View)) 或者通過layout XML來創建。
(4)Overlay
Overlay是覆蓋到MapView的最上層,可以擴展其ondraw接口,自定義在MapView中顯示一些自己的東西。MapView通過MapView.getOverlays()對Overlay進行管理。
除了Overlay這個基類,Google還擴展了2個比較有用的Overlay
1)MylocationOverlay—集成了Android.location中接收當前座標的接口,集成SersorManager中CompassSensor的接口
我們只需要enableMyLocation(),enableCompass就可以讓我們的程序擁有實時的MyLocation以及Compass 功能(Activity.onResume()中)。
2)ItemlizedOverlay—管理一個OverlayItem鏈表,用圖片等資源在地圖上作風格相同的標記。
(5)Projection:MapView中GPS座標與設備座標的轉換(GeoPoint和Point)。
1.Google API的申請
(1)MD5認證(指紋認證):
找到android的SDK的debug.keystore;在運行輸入框中輸入cmd進入Dos環境進行MD5認證:進入debug.keystore的絕對路徑輸入keytool -list -keystore debug.keystore -v
(2)官網申請API
網站
Keyhttps://developers.google.com/maps/documentation/android/start#obtaining_an_api_key
29:14:33:1F:50:2B:1F:4D:83:D7:C6:16:F8:E7:7D:74
Key: AIzaSyBh94IBrF6TMNGyZ3wuynXKDofa3R3s6hg
2.新建一個工程,
注意用Complie With選擇GoogleAPI,不然不能正確引入com.google.android.maps包
3.添加權限和引入工程外的包:在Manifest中的Pemission添加網絡權限和粗略定位權限,Application添加引入外包
4.讓主Activity繼承自MapActivity因爲只有MapActivity才能顯示MapView