Поверните карту Google в соответствии с азимутом с отметкой в ​​центре - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь реализовать Google Maps в моем приложении.

Требование:

Во время движения мой значок маркера должен быть зафиксирован в центре экрана (всегда в направлении на север), а карта должна двигаться влево-вправо вниз и вращаться, когда пользователь поворачивает улицу.

Как я пытаюсь сделать это как

        googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(position, 5));

        float bearing = getBearing(Lastposition,newPosition);

        CameraPosition cameraPosition = new CameraPosition.Builder()
                .target(newPosition)
                .zoom(15)
                .bearing(bearing)
                .tilt(0)
                .build();

        googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));



    public static float getBearing(LatLng from, LatLng to) {

    Location fromLocation = new Location("");//provider name is unnecessary
    fromLocation.setLatitude(from.latitude);
    fromLocation.setLongitude(from.longitude);

    Location toLocation = new Location("");//provider name is unnecessary
    toLocation.setLatitude(to.latitude);
    toLocation.setLongitude(to.longitude);
    Log.i("Bearing",fromLocation.bearingTo(toLocation)+"");
    return fromLocation.bearingTo(toLocation);
}

Результаты:

Маркер движется по дорожке, но сама камера не движется в зависимости от поворотов на улицах. Я надеюсь, что смог сделать вещи понятными. Пожалуйста, помогите, что может быть проблемой или лучшим решением для этого. Спасибо

...