Подтвердить что ты не робот

Android - карта google перемещает камеру с позиции на другую

Вскоре я хочу знать, как я могу переместить камеру из текущей позиции в другую с анимацией. Вот моя попытка:

 mapView.moveCamera(CameraUpdateFactory.newLatLngZoom(targetPos, 3));
 mapView.animateCamera(CameraUpdateFactory.zoomTo(5), 2000, null);

Но карта Google перемещает камеру с определенной позиции на цель. Как я могу установить его перемещение от A до цели, а A - какое-то положение, которое я могу установить? Спасибо заранее.

4b9b3361

Ответ 1

Посмотрите на код в CameraDemoActivity в образце карт. Чтобы перейти к позиции, вам необходимо иметь CameraPosition.

static final CameraPosition SYDNEY =
        new CameraPosition.Builder().target(new LatLng(-33.87365, 151.20689))
                .zoom(15.5f)
                .bearing(0)
                .tilt(25)
                .build();



public void onGoToSydney(View view) {   
    changeCamera(CameraUpdateFactory.newCameraPosition(SYDNEY), new CancelableCallback() {
        @Override
        public void onFinish() {
            Toast.makeText(getBaseContext(), "Animation to Sydney complete", Toast.LENGTH_SHORT)
                    .show();
        }

        @Override
        public void onCancel() {
            Toast.makeText(getBaseContext(), "Animation to Sydney canceled", Toast.LENGTH_SHORT)
                    .show();
        }
    });
}


/**
 * Change the camera position by moving or animating the camera depending on the state of the
 * animate toggle button.
 */
private void changeCamera(CameraUpdate update, CancelableCallback callback) {
    if (mAnimateToggle.isChecked()) {
        if (mCustomDurationToggle.isChecked()) {
            int duration = mCustomDurationBar.getProgress();
            // The duration must be strictly positive so we make it at least 1.
            mMap.animateCamera(update, Math.max(duration, 1), callback);
        } else {
            mMap.animateCamera(update, callback);
        }
    } else {
        mMap.moveCamera(update);
    }
}