2016-05-26 9 views
7

GoogleマップのAndroid API v2を使用しています。ここでは、デバイスの場所をマップ上のGoogleマップマーカーとして表示しています。 すべてのGPS位置の変更を処理するために、リスナー(LocationServices.FusedLocationApi.requestLocationUpdates ...)をマップに添付します。 私は新しい場所を受け取るたびに、マーカー(私の位置)と地図上のカメラを更新し、私が運転しているように動き回っているように見せます。Googleマップをリアルタイムで表示するには

は、しかし...私はは私がに移動しています、同じ方向に表示および/またはを回転MAPを持っているために、いくつかの助けを必要としています。私が運転している間は地図上で見ることができるMAPを回転させる必要があります。左側は私の実際の左側、右側は同じです。 MAPの方向は静的なので、マーカー(Me)は移動していますが、ほとんどの場合、方向は車のリアルタイム方向と一致しません。

この視覚効果を達成するには、マップをどうすればいいですか?

+1

だから技術的に、あなたはsensorlistenersを実装したい場合、マップは、(左または右の場合)、コールバック内のデータに基づいてそれに反応しています。この記事をチェックしてください:http://stackoverflow.com/questions/6224577/、http://stackoverflow.com/q/2317428/4625829、http://stackoverflow.com/q/14320015/4625829、http:// stackoverflow.com/q/4308262/4625829、http://stackoverflow.com/q/36258490/4625829、http://stackoverflow.com/q/18162642/4625829 –

答えて

16

私はGoogleマップAPIは、このような一般的な視覚効果の欲望を提供していないことをかのうであるか推測されました。私は間違っていた... BEARINGと呼ばれています。 Iセットアップ以来

private void updateCameraBearing(GoogleMap googleMap, float bearing) { 
    if (googleMap == null) return; 
    CameraPosition camPos = CameraPosition 
      .builder(
        googleMap.getCameraPosition() // current Camera 
      ) 
      .bearing(bearing) 
      .build();     
    googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(camPos)); 
} 

私の場所の変更2秒ごとに通知すべき...

mLocationRequest = LocationRequest.create() 
         .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY) 
         .setInterval(POLLING_FREQ_2SECONDS) 
         .setFastestInterval(FASTEST_UPDATE_FREQ_2_SECONDS) 

私は新しい場所を処理するだけでなく、カメラ(新しいBEARING)を更新するために、その同じ場所を使用します:

public void onLocationChanged(Location location) { 

// ... process location 

updateCameraBearing(googleMap, location.getBearing()); 
} 

TESTED + WORKING = DONE!

+0

ありがとうございました! –

+0

V3でこれをどうすればできますか?提案してください。 また、軸受けを3回(120度ごとに中心点の周りを1周回するように)変えて地図360度を回転させるために同様の質問を掲載しましたが、イージングとジャークがあります。どのように私はそれを避けることができます。 https://stackoverflow.com/questions/48123738/gmap-bearing-rotation-in-smooth-motion –

関連する問題