« Hibernate - 固定長文字列(CHARなど)のカラムに対して半角スペースでpaddingしたい | メイン | iPhoneのNDA緩和 »

Android - VIEW_ACTIONのIntentでStreet Viewを開く

Android SDK の0.9から、公式なIntentの種類にStreetViewが追加されています。(http://code.google.com/android/reference/available-intents.html
なので、IntentでStreetViewを開くことが可能です。

エミュレータを起動しておき、ターミナルからadbで実験してみます。

adb shell
# am start -a android.intent.action.VIEW 'google.streetview:cbll=35.713768,139.777254&cbp=1,0,,0,1.0'

この座標は上野駅周辺ですので、上野駅付近のStreetViewが開いたと思います。cbllパラメータは、緯度経度情報です(必須)。cbpはヨーとピッチ等の角度を指定します。ロールは見ていないようです。他にも、Mapに表示を切り替えた時のズームレベルなども指定可能です。

アプリから実行する例はこんな感じです(ちょっとダサいですが。。)以下は、MapViewに表示されている中央の座標のStreetViewを表示します。

GeoPoint center = map.getMapCenter();
Uri uri = Uri.parse("google.streetview:cbll=" + center.getLatitudeE6()/1E6 + "," + center.getLongitudeE6()/1E6);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

なお、このIntentのactionはVIEWになるので、startActivityForResultなどで、サブアクティビティとして起動し、戻り値をもらうような使い方は出来ません。(一方通行のやり取りになってしまうようです。)また毎回StreetViewアプリが起動するので、端末からStreetViewアプリを直接操作する時のような軽快な操作は期待できません。でも、いずれ出来るようになるような気がします。

ちなみに、地図に表示している地域がStreetViewに対応しているかどうかを示す青線(WEBのGoogle Mapで「ストリートビュー」ボタンを押した時に出るアレ)は、MapView#setStreetView(true)とすれば表示されます。

トラックバック

このエントリーのトラックバックURL:
http://www.grandnature.net/bin/mt-tb.cgi/87

この一覧は、次のエントリーを参照しています: Android - VIEW_ACTIONのIntentでStreet Viewを開く:

» StreetView呼び出し 送信元 アンドロイド
http://www.grandnature.net/blog/archives/2008/09/android_view_actionintentstr... [詳しくはこちら]

コメントを投稿

About

2008年09月26日 20:33に投稿されたエントリーのページです。

ひとつ前の投稿は「Hibernate - 固定長文字列(CHARなど)のカラムに対して半角スペースでpaddingしたい」です。

次の投稿は「iPhoneのNDA緩和」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。