前回、Intentを使って、Googleマップへ指定した座標を渡して表示する方法を紹介しました。
Uri gmUri = Uri.parse("geo:35.684331,139.735232?z=19");
Intent gmIntent = new Intent(Intent.ACTION_VIEW, gmUri);
gmIntent.setPackage("com.google.android.apps.maps");
startActivity(gmIntent);
メモ:Google Mapsでうちの会社の場所を表示 - Mono Works
今回は、Googleマップへ渡すパラメータについて、もう少し紹介したいと思います。といっても、ほぼ下記ページを訳しただけ。
Launch Google Maps | Maps SDK for Android | Google Developers
おさらい(指定位置の表示)
指定した座標(緯度、経度)の場所を地図の中心に表示する場合、下記形式にて緯度、経度を10進法で記述します。
geo:35.684331,139.735232
場所の検索
現在地周辺の「駐車場」を検索表示する場合、「geo:0,0」に続けて、キーワード「駐車場」を「?q=」で指定します。
geo:0,0?q=駐車場
指定場所周辺の「駐車場」を検索表示する場合、緯度、経度で指定して、以下略。
geo:35.684331,139.735232?q=駐車場
さらに地図のズームレベルも追加する場合、「z=倍率」を追加して「&」で繋げます。
geo:35.684331,139.735232?z=10&q=駐車場
なお、検索した場所にはマーカーが表示されるので、下記のように記述することで、指定した位置にマーカーを立てて表示することができます。
geo:0,0?q=35.684331,139.735232
/* とか */
geo:35.684331,139.735232?q=35.684331,139.735232
現在地から指定場所までのナビをおこなう
下記の形式で目的地を指定すると、現在地から目的地までのナビゲーション画面が表示されます。
google.navigation:q=コンビニ
目的地の指定では、キーワードでも検索できますが、ナビモードだと、近所のコンビニや駐車場が指定されるとは限らず、車で1時間かかる場所まで案内されることもあり、ナビモードでの場所設定は、緯度経度もしくは住所で指定するか、いったん地図モードで検索してからナビモードに切り替えるのが妥当です。
google.navigation:q=35.684331,139.735232
/* とか */
google.navigation:q=東京都千代田区麹町4-4 麹町シャインビル
さらに、オプション「mode=d(車)、w(歩き)、b(自転車)」を「&」で繋げて、移動手段を指定。指定しない場合は「d(車)」となります。
google.navigation:q=35.684331,139.735232&mode=w
指定場所のストリートビューを表示
基本形は、cbll:の後ろに緯度と経度をカンマ区切りで指定します。
google.streetview:cbll=35.684331,139.735232
緯度経度で場所を指定する方法以外に、panoidというパノラマ写真ごとに振られた「パノラマID」を指定する方法もあります。
google.streetview:panoid=パノラマID
ストリートビューの初期表示オプション
ストリートビューの初期表示に関するオプションとして、下記のように「cbp=」の後に続くカンマで区切られた5つのパラメータを指定できます。
google.streetview:cbll=35.684331,139.735232&cbp=0,45,0,0,-10
各パラメータの意味は、下記のとおり。上記例のオプションは、北から45度(北東)の方角に、標準倍率で、10度目線を上向けた方向を表示することになります。
&cbp=0,方角,0,倍率,傾き
1番目と3番目のパラメータはサポートされておらず「0」を指定。
2番目の「方角」は、北を「0」として時計回りに東「90」、南「180」、西「270」と角度を指定(0~360)。
4番目の「倍率」は、標準倍率が「0」で1増えるごとに倍になっていきます(0、1、2、…登録された写真の最大倍率)。
5番目の「傾き」は、真上を「-90」、水平を「0」、真下を「90」と角度で指定(-90~90)。
4番目の「倍率」の見え方:標準倍率「0」
4番目の「倍率」の見え方:倍の「1」
4番目の「倍率」の見え方:さらに倍の「2」
【参考サイト】
・Google Maps Intents | Google Maps Android API | Google Developers
・メモ:Google Mapsでうちの会社の場所を表示(Android) | Mono Works androiddevmemo20150907_
コメント
コメントなどありましたら、GitHubのディスカッションへお願いします。(書き込みには、GitHubのアカウントが必要です)