ウェブアプリケーション,インジェクション,コマンドインジェクション

Androidアプリ開発 アプリケーションでグーグルマップを使います

Google Mapsを表示します

Displaying Google maps

AndroidSDKがバージョン1.0をリリースした当初、
AndroidアプリケーションにGoogle Mapsを組み込む前に、
フリーのGoogle Maps APIキーを適応させる必要があります。
キーを適応させる時に、Googleの使用条件に同意することも必要で、
その使用条件は注意深く読んだほうが良いと思います。
キーを取得したら、そのキーをアプリケーションに加える必要があり、
それが出来ればGoogle Mapsが正確に表示されます。
以下に手順を示します。


ちょっと注釈

Googleが提供しているMaps APIキーを適応させるための詳細は、

http://code.google.com/android/add-ons/google-apis/mapkey.html

にあります。


手順としてまず、もし開発するアプリケーションをAVD
(Androidエミュレータ)やアプリケーションを開発しているマシンに
直接つないだAndroidデバイスでテストしているのなら、
SDKデバッグ証明書の位置は、初期設定のままのフォルダにあります。
OS_Xユーザならば/Users/<username>/.android
Windows7ユーザならばC:\Users\<username>\.androidにあります。
Eclipseを起動し、Preferenceに行きAndroidのアイテム一覧を開き
Buildを選ぶと、デバッグ証明書の存在を確認できます。
開いたウインドウの右側のDefault debug keystoreにあるアドレスが デバッグ証明書の位置になります。


WindowsXPユーザなら
C:\Documents and Settings\<username>\Local Settings
 \Application Data\Android.にAndroidフォルダがあります。

デバッグキーが保存されているファイル名はdebug keystoreです。
これは開発するアプリケーションにサインするために
Eclipseを使う証明書となります。
この証明書をつかってAndroidエミュレータや実際のデバイスで
アプリケーションを走らせられる様になります。
Debug keystoreを使うためには、
インストールしたJDKに含まれるKeytoolアプリケーションを使って、
MD5の識別子を知る必要があります。
この識別子はフリーGoogle Mapsキーに適応させる必要があります。
Windowsユーザならばkeytoosアプリケーションは大抵、
C:\Program Files\Java\<JDK_version_numbet>\bin
フォルダにあります。
コマンドウインドウを開き、keytoolアプリケーションのある
ディレクトリに移動し、以下のコマンドを入力します。
このコマンドでMD5識別子を引き出します。

keytool -list -alias androiddebugkey -keystore
"C:\Users\<username>\.android\debug.keystore" -storepass android

上のコマンドで使った引数の内容は以下の通りです。
●−list 指定されたkeystoreの詳細を表示します。
●-alias keystoreの別名です。
●-keystore keystoreの位置を指定します。
●-storepass -keystore keystoreのパスワードを指定します。
●-keypass keystoreにあるキーのパスワードを指定します。
●-v verbose(詳細)モードを指定します。
    すべての異なる識別子を表示します。MD5やSHA1など


ちょっと注釈

Androidエミュレータやデバイスで開発するアプリケーションを
デバッグするためMaps APIを取得するdebug keystoreのMD5識別子を
使うこともできますが、そのキーはAPKファイルのように
開発しているAndroidアプリケーションをエクスポートしようとしているか
どうかを確認することはありません。
開発したAndroidアプリケーションをAndroidマーケットに展開する
準備ができたときには、(他の流通経路でもそうですが、)
アプリケーションにサインするために使われる証明書を使って、
Maps APIに再度適応させる必要があります。


MD5証明書の識別子をコピーして、ウェブブラウザで
http://code.google.com/android/maps-api-signup.html
のページを開きます。
そしてページにある指示に従ってアプリケーションを仕上げ、
Google Mapsキーを取得します。
これが出来たときには、取得したキー、アプリに使う識別子の証明書、
マッピングを始めるためのXMLレイアウトの例などが取得できます。
これで最初の段階が終了です。

Displaying the Map

Google Mapsのキーを取得したことで、開発するAndroidアプリケーションに
Google Mapsを表示する準備ができました。
MapViewを使ってアプリケーション内にGoogle Mapsを表示していくために
AndroidManifest.xmlファイルにINTERNETパーミッションを
加える必要があります。
加えて、Mapsのライブラリを参照する必要もあります。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="net.learn2develop.maps"
  android:versionCode="1"
  android:versionName="1.0" >

  <uses-sdk
   android:minSdkVersion="8"
   android:targetSdkVersion="15" />

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

  <application
   android:icon="@drawable/is_launcher"
   android:label="@string/app_name"
   android:theme="@style/AppTheme" >

   <uses-library android:name="com.google.android.maps" />

   <activity
    android:name=".MainActivity"
    android:label="@string/title_activity_main" >
    <intent-filter>
     <action android:name="android.intent.action.MAIN" />

     <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
   </activity>
  </application>
<manifest>

ちょっと注釈

MapView viewを使うためには、AndroidプロジェクトはGoogle APIsを
ターゲットとして使わなければなりません。
EclipseにあるProject Explorerをチェックすることで
APIがターゲットになっているか確認でき、
Google APIsフォルダを探していきます。
Google APIsフォルダを開くと、maps.jarファイルが確認できるはずです。
このファイルにはMapViewライブラリが入っています。
使っているアクティビティのXMLファイル(例えばmain.xml)の中で、
<com.google.android.maps.MapView>要素を加える必要があります。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent" >

  <com.google.android.maps.MapView
   android:id="@+id/mapView
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:apiKey="取得したキーをここに入力します"
   android:clickable="true"
   android:state_enabled="true" />

<RelativeLayout>

android:apiKeyの値には以前取得したMaps APIキーを入力します。
最後にGoogle Mapsを表示するアクティビティを
MapActivity基底クラスを拡張しなければなりません。

import android.os.Bundle;

import com.google.android.maps.MapActivity{

public class MainActivity extends MapActivity{
  @Override
  public void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
  }

  @Override
   protected boolean isRouteDisplayed(){
    return false;
   }

}

MapActivity基底クラスを拡張していくときに、
isRouteDisplayed()メソッドを実行することも必要で、
このメソッドはGoogleのアカウント確認を目的に使われて、
マップ上でルーティング情報を表示させていくのなら
このメソッドでtrueを返さないといけません。


マップが表示されない?

Google Mapsが表示される代わりに、何もないグリッドが表示されたら、
その時は、大抵の場合main.xmlファイルのAPIキーが間違っていることが
多いです。また、AndroidManifest.xmlファイルにINTERNET
パーミッションを加えるのを忘れている可能性もあります。
emulator/devices上でインターネットに接続できるか確認します。
もしプログラムが動かない場合には、AndroidManifest.xmlに
以下のようなステートメントを追加し忘れているかもしれません。

<uses-library android:name="com.google.android.maps />

AndroidManifest.xmlファイルに配置するのにも注意します。
<application>要素に入れるべきですが、
<activity>要素の外に置くべきです。


ホーム
便利堂ロゴ
inserted by FC2 system