AndroidTips

V2を使った地図表示のサンプルプログラム!!

このサンプルはandroid ver2.3を対象に設定しています。2.3以上のverは問題なく動作可能なはずです。但し、従来のように
Eclipseのエミュレーターでのデバッグは出来なくなりました。アンドロイド端末を接続してデバッグする必要があります。
AndroidアプリケーションプロジェクトはGoogleApiをターゲットに設定します。

1.Androidプロジェクトの作成

前項で説明のapiキーを取得し、マニュフェストファイルに記載します。
同じくGoogle Play Serviceを取得し、プロジェクトファイルに以下のように登録します。
Package Explorerに表示されたプロジェクト名を右クリックして、「Properties」を選択し、ライブラリーに追加で
"google-play-services_lib"を登録します。
それぞれのファイルを完成させ、Eclipseで実行します。注意として、ファイル間のpackage名は一致する必要があります。
実行すると、富士山を中心とした地図が表示されます。これがV2を使った基本の地図プログラムになります。

2.メインファイルの作成

MainActivity.java

package jp.itanonb.map;


import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapsInitializer;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;

public class MainActivity extends FragmentActivity {

  GoogleMap map;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    map = ((SupportMapFragment) 
      getSupportFragmentManager().findFragmentById(R.id.map))
      .getMap();
      
    moveToMountFuji();
  }
  
  protected void moveToMountFuji(){
    CameraUpdate cu = 
      CameraUpdateFactory.newLatLngZoom(
        new LatLng(35.362573,138.731533),10);
    
    map.moveCamera(cu);
  }
  
}

3.レイアウトファイルの作成

res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#EDEDED"
    android:orientation="vertical" >

    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
  
</LinearLayout>

4.マニフェストファイルの作成

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="jp.itanonb.map"
  android:versionCode="1"
  android:versionName="1.0" >
  
  <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="10" />
  
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission
    android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  <uses-feature android:glEsVersion="0x00020000" android:required="true"/>
  
  <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    
    <meta-data
      android:name="com.google.android.maps.v2.API_KEY"
      android:value="API key;/>
    
    <uses-library
      android:name="com.google.android.maps" />
    
    <activity
      android:name="jp.itanonb.map.MainActivity"
      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>

</manifest>




Android Tipsに戻る