Home > android > Androidで地図を表示する方法

Androidで地図を表示する方法

Androidで地図を表示するシンプルなサンプルをご紹介します。

では早速ソースコードをどうぞ。

まずはメイン

メインとか言ってますが、Androidの動作を理解していない人は「Androidアプリケーション開発入門」を参考にして下さい。

public class MapTest extends MapActivity {
 
  private MapView mv;
  private MapController mc;
 
  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    mv = new MapView(this);
    setContentView(mv);
    mc = mv.getController();
  }
}

まずはMapActivityを継承する必要があります。
そしてMapViewをnewするときに引数でthisを渡します。
そしてsetContentViewでコンテンツを設定します。

とても簡単ですね。
MapControllerはマップを制御するオブジェクトです。

メニューを作る

メニューでは

  • ズームイン
  • ズームアウト
  • 地図/航空写真

の機能を提供します。
ではソースコードをどうぞ。

private final int ZOOMIN = 0;
private final int ZOOMOUT = 1;
private final int SATELLITE = 2;
 
@Override
public boolean onCreateOptionsMenu(Menu menu) {
  boolean supRetVal = super.onCreateOptionsMenu(menu);
  menu.add(0, ZOOMIN, getString(R.string.map_menu_zoom_in));
  menu.add(0, ZOOMOUT, getString(R.string.map_menu_zoom_out));
  menu.add(0, SATELLITE, getString(R.string.map_menu_toggle_satellite));
  return supRetVal;
}

メニューボタンが押されるとonCreateOptionsMenuがコールされるので、そこでメニューをaddしていくだけです。
次にメニューの処理を書きます。

メニューの動作

メニューでは「ズームイン」「ズームアウト」「地図と航空写真の切替え」の機能を提供します。

@Override
public boolean onOptionsItemSelected(Menu.Item item) {
  switch (item.getId()) {
  case ZOOMIN:// ズームイン
    mc.zoomTo(Math.min(21, mv.getZoomLevel() + 1));
    return true;
  case ZOOMOUT:// ズームアウト
    mc.zoomTo(Math.max(1, mv.getZoomLevel() - 1));
    return true;
  case SATELLITE:// サテライトと地図を変換
    mv.toggleSatellite();
    return true;
  }
  return false;
}

「ズームイン」と「ズームアウト」はMapControllerのメソッドで可能です。
「地図と航空写真の切換え」はMapViewのメソッドで可能です。

おわりに

とっても簡単に地図を表示できました。

ソースコード

とりあえずソースコードを公開しておきます。

MapTest.java
package com.adamrocker.android.map;
 
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import android.os.Bundle;
import android.view.Menu;
 
public class MapTest extends MapActivity {
 
  private final int ZOOMIN = 0;
  private final int ZOOMOUT = 1;
  private final int SATELLITE = 2;
  private MapView mv;
  private MapController mc;
 
  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    mv = new MapView(this);
    setContentView(mv);
    mc = mv.getController();
  }
 
  // メニューを作る
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    boolean supRetVal = super.onCreateOptionsMenu(menu);
    menu.add(0, ZOOMIN, getString(R.string.map_menu_zoom_in));
    menu.add(0, ZOOMOUT, getString(R.string.map_menu_zoom_out));
    menu.add(0, SATELLITE, getString(R.string.map_menu_toggle_satellite));
    return supRetVal;
  }
 
  // メニューの動作
  @Override
  public boolean onOptionsItemSelected(Menu.Item item) {
    switch (item.getId()) {
    case ZOOMIN:// ズームイン
      mc.zoomTo(Math.min(21, mv.getZoomLevel() + 1));
      return true;
    case ZOOMOUT:// ズームアウト
      mc.zoomTo(Math.max(1, mv.getZoomLevel() - 1));
      return true;
    case SATELLITE:// サテライトと地図を変換
      mv.toggleSatellite();
      return true;
    }
    return false;
  }
}
res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="app_name">MapTest</string>
  <string name="map_menu_zoom_in">ズームイン</string>
  <string name="map_menu_zoom_out">ズームアウト</string>
  <string name="map_menu_toggle_satellite">地図/航空写真</string>
</resources>
関連のありそうなエントリ

Comments:0

Comment Form
Remember personal info

*
To prove that you're not a bot, enter this code
Anti-Spam Image

Trackbacks:0

Trackback URL for this entry
http://www.adamrocker.com/blog/168/android_simple_map_application.html/trackback/
Listed below are links to weblogs that reference
Androidで地図を表示する方法 from throw Life

Home > android > Androidで地図を表示する方法

Twitter
Search
Feeds
Meta

Return to page top