Quantcast
Channel: 質問!ITmedia 新着質問(Java/253)
Viewing all articles
Browse latest Browse all 2439

Android G-Maps v2 端末の向き取得

$
0
0
確認端末:Arrows Z isw11f 現在、Google Maps Android API v2 を使って地図アプリを開発しています。 onMyLocationChange()でLocationの変更イベントをキャッチして、常に地図の中心を現在地に、かつ端末の向きと地図の向きが連動する(端末を南に向けると、地図も南が上となるよう回転する)動きを目指しているのですが、上手くいかない点があるのでアドバイスいただければ幸いです。 思った動きをしてくれないのは端末の向きの取得です。 予想ではonMyLocationChange()で引数として取得されるLocationのgetBearing()で期待した値が取得できると思っていたのですが、起動したところ「0」が帰ってきました。 latitude、longitudeは期待値が取れているのですが・・・ 本家googleの「マップ」アプリを同端末・同環境で起動したところ、起動直後からbearingを取得していると思われる(すぐに現在地に端末の向きを示す青矢印が表示される。端末向きを変えると連動して矢印も動く)ことから、方法はあるのだと思うのですが、英語のサイト含めて探しているのですがクリティカルな情報に辿りつけていません。(私の貧弱な英語力のせいで発見できていないだけかもしれませんが、そこはご容赦ください。) なお、私のプログラムでは、現在地に青点(矢印ではない)が表示されるので、MapsのAPI側でも向きを取得できていないと推測されます。 全てのソースを公開するわけにもいかないので、上述の状況から、Manifestのpermission辺り、またはcom.google.android.gms.maps.GoogleMapへの設定値が足りていないのではと予測し、その辺りのソースを一部記載します。 不足している情報がありましたら申し付けください。 アドバイスいただけると幸いです。 宜しくお願いいたします。 ==== MainActivity(抜粋) ==== // 現在位置表示の有効化 mMap.setMyLocationEnabled(true); // カメラ変更イベントの有効化 mMap.setOnCameraChangeListener(this); // 設定の取得 UiSettings settings = mMap.getUiSettings(); // コンパスの有効化 settings.setCompassEnabled(true); // 現在位置に移動するボタンの無効化 settings.setMyLocationButtonEnabled(false); // 拡大縮小ボタンの無効化 settings.setZoomControlsEnabled(false); // マーカークリック時の動作を変更 mMap.setOnMarkerClickListener(this); // 位置情報のリスニング mMap.setOnMyLocationChangeListener(this); ==== AndroidManifest.xml(全文。一部伏字) ====

Viewing all articles
Browse latest Browse all 2439

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>