Android-使用webview顯示V3版的Google地圖


目的:使用Google Map API v3載入Google地圖。



專案目錄結構如下:



在assets目錄下放置專案要載入的googleMap.html, 內容如下:


<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Google Maps JavaScript API v3 Example: Marker Animations</title>
    <link href="/maps/documentation/javascript/examples/default.css" rel="stylesheet">
    <script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
    <script>
      var m1 = new google.maps.LatLng(24.217712, 120.580806); //弘光科技大學,台中市中棲路34號
      var map;

      function initialize() {
        var mapOptions = {
          zoom: 15,
          mapTypeId: google.maps.MapTypeId.ROADMAP,
          center: m1
        };
        map = new google.maps.Map(document.getElementById('map_canvas'),
                mapOptions);                
      }
    </script>
  </head>
  <body onload="initialize()">
    <div id="map_canvas" style="width: device-width; height: 460px;">map div</div>
  </body>
</html>


這個html檔可以直接用瀏覽器打開察看,其中設定弘光科技大學為地圖中心。

因為Google地圖必須存取Internet,AndroidManifest.xml加入對Internet的存取權限。

 <uses-permission android:name="android.permission.INTERNET"/>

Layout檔googlemaps.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <WebView android:id="@+id/webview"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"/>
</LinearLayout>

主程式MainActivity.java
package wells.example.googlemapexample;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {  
  private static final String MAP_URL = "file:///android_asset/googleMap.html";
  private WebView webView;
  @Override
  /** Called when the activity is first created. */
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.googlemaps);    
    setupWebView();//載入Webview
  }
  /** Sets up the WebView object and loads the URL of the page **/
  private void setupWebView(){ 
    webView = (WebView) findViewById(R.id.webview);
    webView.getSettings().setJavaScriptEnabled(true);//啟用Webview的JavaScript功能
    //Wait for the page to load then send the location information
    webView.setWebViewClient(new WebViewClient(){  
      @Override  
      public void onPageFinished(WebView view, String url)  
      {
       
      }

    });
    webView.loadUrl(MAP_URL);  //載入URL 
  }
}




Comments

Frank-wu said…
請問在V3版中
如何將地圖整合到android的程式?
一定要多一個html檔才能顯示地圖嗎?
謝謝~
Frank-wu said…
請問在V3版中
如何將地圖整合到android程式中?
一定需要多一個hhml檔嗎?
謝謝~
Frank-wu said…
請問在V3版中
如何將地圖整合到android程式中?
必須多一個html檔嗎?
謝謝~
kenny said…
請問照你的程式,執行時會出現錯誤 在這行 setContentView(R.layout.googlemaps);
請問如何修改? 謝謝您的回覆

Popular posts from this blog

Android-使用webview在V3版的Google地圖GPS定位