Top > Google Mapを表示する

Google Mapを表示する

Last-modified: 2009-07-10 (金) 10:28:04

Android上でGoogle Mapを表示する方法を紹介します。

シンプルなMapを表示する Edit

Mapの表示を行うにはMaps API Keyが必要になります。
Maps API Keyの取得に従って、事前にKeyを取得しておきます。

 

APIキーが取得できたら、Google Mapを表示するアクティビティを作成しましょう。
作成手順のチュートリアルとして、Google Mapをフルスクリーンで表示するSimpleMapActivityを作成することにします。

 
public class SimpleMapActivity extends MapActivity { 
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.simple_map);
    }
    
    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
}
 

Google Mapを表示するアクティビティにはMapActivityクラスを継承させます。
MapActivityはAndroidでMapを表示するための追加ライブラリ(maps.jar)に含まれています。

 

Eclipseで追加ライブラリを使用するアプリケーションを開発するには、以下の方法があります。
Androidプロジェクトの新規作成時の[Build Target]に"Google APIs (API Level 3)"を指定する。
既存プロジェクトを右クリック→[Properties]→[Android]→[Project Build Target]に"Google APIs (API Level 3)"を指定する。

 

mapview_apilevel.jpg

 

MapActivityはMapの制御を行うアクティビティです。
このアクティビティのレイアウトに地図を表示するMapViewを配置しましょう。
今回はレイアウトファイルに定義する方法でMapViewを配置します。

 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
   
    <com.google.android.maps.MapView
        android:id="@+id/map"
        android:apiKey="取得したAPI Keyをここに記述"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

simple_map.xmlファイルとして保存し、プロジェクトのres/layoutフォルダに置きます。

 

アクティビティを作成したら、マニフェストにmapsライブラリの使用と、パーミッションを追記します。
追記する箇所は、以下の2点です。
 |録涵霾鵑亮萋世縫ぅ鵐拭璽優奪箸悗寮楝海鰺廚垢襪里如uses-permissionタグを追加し、"android.permission.INTERNET"を指定する。
 ∋藩僂垢MapActivity及びMapViewは標準ライブラリに含まれていないので、uses-libraryタグを追記し、"com.google.android.map"を指定する。

 
<!-- …媛辰垢襯僉璽潺奪轡腑鵑uses-permissionタグで追記する -->
<uses-permission android:name="android.permission.INTERNET" />
   
    <application android:icon="@drawable/icon" android:label="@string/app_name">
       
        <!-- ∋藩僂垢襯薀ぅ屮薀蠅uses-libraryタグで追記する -->
        <uses-library android:name="com.google.android.maps" />

        <activity android:name=".SimpleMapActivity" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
<uses-sdk android:minSdkVersion="3" />
 

マニフェストを修正したら、SimpleMapActivityを起動します。
Eclipseのパッケージエクスプローラから作成したプロジェクトを右クリック→[Run As]→[Android Application]を選択します。
エミュレータが起動し、MapActivityのデフォルトで用意された座標を中心としたGoogle MapがAndroidのスクリーンに表示されます。

 

mapview_first.jpg

 

表示された地図はズームレベルを変更することも、スクロールすることもできません。
SimpleMapActivityに修正を加えて、ズームレベルの変更や、スクロールができるようにします。

 

SimpleMapActivityのonCreate時にリソースIDからMapViewを取得し、プロパティを設定します。
setClickableメソッドでユーザのクリック(スクリーンタッチ)イベントに反応するかどうかを指定します。
setBuiltInZoomControlsメソッドでMapViewで用意されたズームコントロールを使用するかどうかを指定します。

 
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.simple_map);
    
    MapView map = (MapView)findViewById( R.id.map);
    map.setClickable(true);
    map.setBuiltInZoomControls(true);
}
 

再度実行するとMapのスクロールや、スクリーン下部に表示されるボタンでズームレベルの変更が出来るようになります。
mapview_clickable.jpg

 


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White