サンプルソース 271.47 KB
1 2 3 4 5 →

Androidアプリケーションでの地図描画と方位センサー実装

 この連載では、Androidの開発の楽しさを感じてもらう事を目標に、難しい内容はひとまず置いておいて、アプリケーション開発ができるようになるま でを最短ルートで説明していきます。

 前回までの作業で、「一覧」「参照」「登録」画面の実装がひとまず完了したので、今回は残すマップ画面の実装に入りましょう。

対象読者

 本連載はJavaおよびEclipseの基本を理解している方を対象としています。

前回までの記事

作成中のサンプルアプリケーション

 本連載では、いろいろな技術要素に触れるために、次のような「名刺管理アプリケーション」を作っています。

サンプルアプリケーションの機能概要

  • 名刺情報を一覧表示
  • 名刺情報の登録、更新
  • 名刺の登録情報から地図を表示
  • 名刺の登録情報から電話やメールなどの外部アプリケーションを利用
画面遷移のイメージ
画面遷移のイメージ

今回実装するマップ画面の機能

 マップ画面では、下記の機能を実現します。

  • 地図・衛星写真の切り替え
  • 目的地の表示
  • 現在地の表示(場所・向き)

地図・衛星写真の切り替え

 地図・衛星写真の切り替えはMapViewのsetSatellite()で行います。ラジオボタンにOnCheckedChangeListenerを追加し、選択状態の変化に合わせて切り替えを行うように実装します。

package sample.bizcard;

import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.ToggleButton;
import android.widget.RadioGroup.OnCheckedChangeListener;

import com.google.android.maps.MapView;

/**
 * 地図表示アクティビティ
 * MapViewを扱うアクティビティはcom.google.android.maps.MapActivityを継承する必要がある
 */
public class MapActivity extends com.google.android.maps.MapActivity implements OnCheckedChangeListener{
    
    // UI部品
    private MapView map = null;
    private RadioGroup radioGroup = null;
    private RadioButton normalMapRadio = null;
    private ToggleButton currentLocationToggle = null;

// Mapのコントローラ
    private MapController controller = null;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 自動生成されたR.javaの定数を指定してXMLからレイアウトを生成
        setContentView(R.layout.map);
        
        // UI部品の取得
        map = (MapView) findViewById(R.id.map);
        normalMapRadio = (RadioButton)findViewById(R.id.normalMapRadio);
        // デフォルトでマップ選択
        normalMapRadio.setChecked( true);
        radioGroup = (RadioGroup)findViewById( R.id.mapRadioGroup);
        // 衛星選択時のリスナ
        radioGroup.setOnCheckedChangeListener( this);
        currentLocationToggle = (ToggleButton)findViewById( R.id.currentLocationToggle);
        
// コントローラの取得
controller = map.getController();
        // ZoomControlの利用
        map.setBuiltInZoomControls( true);
        // 衛星写真OFF
        map.setSatellite( false);
        map.setClickable(true);
        map.setEnabled(true);
    }

    /**
     * ラジオボタンの選択変更時にマップを切り替える
     */
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        if( checkedId == R.id.normalMapRadio){
            // 衛星写真OFF
            map.setSatellite( false);
        }
        else if( checkedId == R.id.satelliteMapRadio){
            // 衛星写真ON
            map.setSatellite( true);
        }
    }
    
    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
}
地図モードの切り替え
地図モードの切り替え

1 2 3 4 5
→
INDEX
地図描画と方位センサーの利用 ~速習! Androidアプリケーション開発(6)~
Page1
Androidアプリケーションでの地図描画と方位センサー実装
地図・衛星写真の切り替え
目的地の描画~Geocorderの利用~
マップ上への描画処理
GPS機能を利用した現在地の描画
Androidにおけるセンサーの利用
まとめ
プロフィール
横井 朗 ヨコイ アキラ

株式会社ビーブレイクシステムズにて業務システムのパッケージソフト(MA-EYES)の製品開発から導入までを手掛けるとともに、オープンソースソフトウェア(ExCella)の開発リーダも務める。

オープンソース関連について多くの執筆経験を持つ。

 

 


注目の求人情報
コンサルタント/ITソリューション
UMLビジネスモデリングによるシステムコンサルティング、エンタープライズ・アーキテクチャコンサルティ...
コンサルタント/日系コンサルティングファーム
経営改革・企業変革のコンサルティングサービスの提供
システムエンジニア/少人数で、サービスを作り上げている東証一部上場企業!!
今回募集するエンジニアは、デザイナーや営業など社内の仲間と一緒にサービスを考え、作り、動かしてい...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: