Android StreetViewを表示する

Google Map API V2でStreetViewを表示する方法を紹介します。基本的にはGoogleMapを表示する方法とそんなに変わりません

手順としては以下

  1. フィンガープリントの取得
  2. Googleアカウントを取得してAPIキーを取得
  3. StreetViewを表示するアプリの作成

環境は、次の通りとして説明します。

  • Mac OS
  • Eclipse ADT

フィンガープリントの取得

まずは、APIキー取得に必要となるフィンガープリントを取得します。

ターミナルを立ち上げます。

ホームディレクトリに、.androidというディレクトリがあるはずなのでそのディレクトリへ移動します。

そこで以下のコマンドを実行します。

keytool -list -keystore debug.keystore

パスワードの入力を求められますが、無視してエンターを押します。

そうすると証明用のフィンガープリント(SHA1)が表示されます。この値をコピーしておきます。

 

APIキーの取得

Googleアカウントが必要になりますので、Googleアカウントがない方は先にGooleアカウントを取得します。

Google API Consoleのサイトを開きます。 https://code.google.com/apis/console

メニューから「認証情報」を選択して「新しいキー」作成ボタンを押します。

以下のような画面が表示されるので、テキストエリアにコピーしたフィンガープリント;作成するアプリのパッケージ名

を入力して作成ボタンを押します

 

そうするとAPIキーが作成されますので、作成されたAPIキーをコピーしておきます。

そのあとAPIメニューを選択して、「Goole Maps Android API V2」を選択してステータスを有効にします。

 

Goole Play Services ライブラリプロジェクトのインポート

GoogleMapを利用するアプリを作成するためには、「Google Play service」が必要になりますので、SDKマネージャーを立ち上げで

インストールを行います。次にGoogle Play Servicesライブラリをアプリのプロジェクトから参照しますので、ライブラリプロジェクト

としてインポートする必要があります。

メニューからFile -> Import で 「Exisiting Android Code Into Workspace」を選択します。

 

インポートするプロジェクトを「SDKインストールディレクトリ/extras/google/google_play_services/libproject/google-play-services_lib」を選択

 

Androidアプリ作成

新規にAndroidアプリを作成します。 今回はAPIレベルは「4.4」としました。

プロジェクトプロバティを開き先ほど追加したがgoogle-play-services-libを参照するように参照ライブラリに追加します。

 

レアイアトの作成を行います。StreetViewをを表示するためには、StreetViewPanoramaFragmentを使います。

 

layout.xml

<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" android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.mapsample.MainActivity">
 <fragment android:id="@+id/map" android:layout_width="match_parent"
 android:layout_height="wrap_content" android:layout_margin="4dp"
 android:layout_weight="1"
 class="com.google.android.gms.maps.StreetViewPanoramaFragment" />
</RelativeLayout>

次にJavaの実装です。

StreetViewPanoramaFragmentよりStreetViewPanoramaのオブジェクトを取得します。

次にStreetViewPanoramaCameraオブジェクトをnewします。設定する項目はzoom, tilt, bareingを設定します。

このクラスに表示する視点を設定します。

bearing

 

真北を0としてカメラの方向を指定します。
tilt カメラの水平角度を指定します
zoom ズーム倍率

 

animateToメソッドでカメラの視点を設定すれば表示することができます。

 

 

@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 StreetViewPanoramaFragment fm = (StreetViewPanoramaFragment)getFragmentManager().findFragmentById(R.id.map);
 StreetViewPanorama map = fm.getStreetViewPanorama();
 StreetViewPanoramaCamera c = new StreetViewPanoramaCamera(10.0f, 10.0f, 165.0f);
 map.setPosition(new LatLng(35.456337, 139.629803));
 map.animateTo(c, 1000);
 }

 

最後にマニフェストファイルです。

パーミッション、 uses-feature, metaデータ、use-librayを追加します。

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

以上で、完成です。

横浜ランドマークタワーが見えたでしょうか?