【 Android 】Google Map V3 使用 (一)

Google自2012.12.3起聲明不支援Map API V1,即不再增加新功能,到2013.3.3前仍接受申請Map API V1 key。Map API V2改用com.google.android.gms.maps.MapFragment,仍需申請Map API V2 key;Google Map API V3則改為Javascript API方式,使用WebView來顯示Google Map,應用程式不需再申請Google Map API key,但同一頁面免費存取次數為25000次/天。

一、雖然是不需要申請api key,但在一開始使用的時候還是需要利用"開發者帳號"到API控制台去取得一組金鑰使用,操作可以參考下列網頁上的"如何建立 API 金鑰:"步驟取得:取得金鑰;若是沒有在Simple API Access上看到金鑰,則可以按下"Create new Browser Key"取得:
二、在專案底下的assets資料夾下產生一個html檔,用來顯示google map,檔案內容如下:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html {
height: 100%
}
body {
height: 100%;
margin: 0;
padding: 0
}
#map_canvas {
height: 100%
}
</style>
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/jsv=3&key=API_KEY&sensor=false">
</script>
<script type="text/javascript">
var map;
function initialize() {
var mapOptions = {
            center: new google.maps.LatLng(-34.397, 150.644), //地圖中心點 
            zoom: 14, //縮放的倍數
    mapTypeId: google.maps.MapTypeId.ROADMAP  //道路型態地圖
    };
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);  //建立map的物件實體
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width: 100%; height: 100%"></div>
</body>
</html>

Google Maps API提供的地圖類型:
MapTypeId.ROADMAP: 會顯示預設道路地圖檢視畫面
MapTypeId.SATELLITE: 會顯示Google地鋌衛星影像
MapTypeId.HYBRID: 會顯示一般檢視和衛星檢視的混合畫面
MapTypeId.TERRAIN: 會根據地形資說顯示實際地圖

紅色字的部份就是要帶入在api控制台取的的金鑰。

三、產生完該檔,再到Mainifest檔取得必要的權限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>

四、完成以上前置作業後就可以進行程式的部份:
   a、由於v3版是使用webview來顯示,所以先建立一個webview元件
       <WebView 
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
   b、接下來就可以設定WebView啟用JavaScript功能,之後載入googleMap.html。
      private void initView(){
webview.setWebViewClient(new WebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/googlemap.html");

}

完成上述的動作後,即可以看到google map顯示在webview上。

補充一點,若是在更換了開發環境or換了電腦開發or換了專案名稱,api key都需要重新申請,否則在裝置上會無法顯示地圖,只會看到白色的view。

留言

這個網誌中的熱門文章

【 Android 】控制ImageView大小&位置

【 Android 】利用file取得資料夾內檔案

【 Android 】防止系統進入休眠和螢幕恆亮