11

コンパスでmapViewを回転させる必要のあるアプリを開発しています。カメラを回転させる方法は知っていますが、コンパスを使用してmapViewを回転させる必要があります。中心点は現在の場所である必要があります。Maps V1のコードを見つけましたが、MapsV2で行う必要があります

4

2 に答える 2

22

わかりました、私は自分でそれを理解しました。まず、コンパスから方位を計算する必要があります。その後、Maps api-2 カメラを回転させることができます。

public void updateCamera(float bearing) {
            CameraPosition currentPlace = new CameraPosition.Builder()
                    .target(new LatLng(centerLatitude, centerLongitude))
                    .bearing(bearing).tilt(65.5f).zoom(18f).build();
            googleMap.moveCamera(CameraUpdateFactory.newCameraPosition(currentPlace));

    }

コードで設定し、イベントSensorListenerでこのメソッドを呼び出します。onSensorChangedマップが 3D で回転するように傾斜値を追加しました。

于 2013-02-12T11:16:50.353 に答える
3

GoogleMap オブジェクトで getMyLocation メソッドにアクセスできます。これは最後に getBearing メソッドを含む Location オブジェクトを返します。これは、最後の既知の位置と現在の位置から計算されたフロート [0..360] を返します。0° は北軸、回転は時計のセンスです。

再開するには、次のようなコードを使用できます。

GoogleMap gMap = ..... 
float bearing = gMap.getMyLocation().getBearing();
CameraPosition newCamPos = new CameraPosition(latLngObject,
            zoomValue,
            tiltValue,
            bearing);
gMap.animateCamera(CameraUpdateFactory.newCameraPosition(newCamPos), durationValue, null);
于 2016-07-07T13:42:13.533 に答える