summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java414
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdate.java23
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java637
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/package-info.java4
4 files changed, 0 insertions, 1078 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java
deleted file mode 100644
index fb89688e28..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java
+++ /dev/null
@@ -1,414 +0,0 @@
-package com.mapbox.mapboxsdk.camera;
-
-import android.content.res.TypedArray;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.support.annotation.FloatRange;
-import android.support.annotation.Keep;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.Size;
-
-import com.mapbox.mapboxsdk.R;
-import com.mapbox.mapboxsdk.constants.MapboxConstants;
-import com.mapbox.mapboxsdk.geometry.LatLng;
-import com.mapbox.mapboxsdk.utils.MathUtils;
-
-import java.util.Arrays;
-
-/**
- * Resembles the position, angle, zoom and tilt of the user's viewpoint.
- */
-public final class CameraPosition implements Parcelable {
-
- public static final CameraPosition DEFAULT = new CameraPosition(new LatLng(), 0, 0, 0, new double[] {0, 0, 0, 0});
-
- public static final Parcelable.Creator<CameraPosition> CREATOR =
- new Parcelable.Creator<CameraPosition>() {
- public CameraPosition createFromParcel(Parcel in) {
- double bearing = in.readDouble();
- LatLng target = in.readParcelable(LatLng.class.getClassLoader());
- double tilt = in.readDouble();
- double zoom = in.readDouble();
-
- double[] padding = null;
- int paddingSize = in.readInt();
- if (paddingSize > 0) {
- padding = new double[paddingSize];
- for (int i = 0; i < paddingSize; i++) {
- padding[i] = in.readDouble();
- }
- }
-
- return new CameraPosition(target, zoom, tilt, bearing, padding);
- }
-
- public CameraPosition[] newArray(int size) {
- return new CameraPosition[size];
- }
- };
-
- /**
- * Direction that the camera is pointing in, in degrees clockwise from north.
- */
- @Keep
- public final double bearing;
-
- /**
- * The location that the camera is pointing at.
- */
- @Keep
- public final LatLng target;
-
- /**
- * The angle, in degrees, of the camera angle from the nadir (directly facing the Earth).
- * See {@link Builder#tilt(double)} for details of restrictions on the range of values.
- */
- @Keep
- public final double tilt;
-
- /**
- * Zoom level near the center of the screen. See {@link Builder#zoom(double)} for the definition of the camera's
- * zoom level.
- */
- @Keep
- public final double zoom;
-
- /**
- * Padding in pixels. Specified in left, top, right, bottom order.
- * See {@link Builder#padding(double[])} for the definition of the camera's padding.
- */
- @Keep
- public final double[] padding;
-
- /**
- * Constructs a CameraPosition.
- *
- * @param target The target location to align with the center of the screen.
- * @param zoom Zoom level at target. See zoom(float) for details of restrictions.
- * @param tilt The camera angle, in degrees, from the nadir (directly down). See tilt(float)
- * for details of restrictions.
- * @param bearing Direction that the camera is pointing in, in degrees clockwise from north.
- * This value will be normalized to be within 0 degrees inclusive and 360 degrees
- * exclusive.
- * @throws NullPointerException if target is null
- * @throws IllegalArgumentException if tilt is outside the range of 0 to 90 degrees inclusive.
- * @deprecated use {@link CameraPosition#CameraPosition(LatLng, double, double, double, double[])} instead.
- */
- @Deprecated
- CameraPosition(LatLng target, double zoom, double tilt, double bearing) {
- this(target, zoom, tilt, bearing, null);
- }
-
- /**
- * Constructs a CameraPosition.
- *
- * @param target The target location to align with the center of the screen.
- * @param zoom Zoom level at target. See zoom(float) for details of restrictions.
- * @param tilt The camera angle, in degrees, from the nadir (directly down). See tilt(float)
- * for details of restrictions.
- * @param bearing Direction that the camera is pointing in, in degrees clockwise from north.
- * This value will be normalized to be within 0 degrees inclusive and 360 degrees
- * exclusive.
- * @param padding Padding in pixels. Specified in left, top, right, bottom order.
- * @throws NullPointerException if target is null
- * @throws IllegalArgumentException if tilt is outside the range of 0 to 90 degrees inclusive.
- */
- @Keep
- CameraPosition(LatLng target, double zoom, double tilt, double bearing, double[] padding) {
- this.target = target;
- this.bearing = bearing;
- this.tilt = tilt;
- this.zoom = zoom;
- this.padding = padding;
- }
-
- /**
- * Describe the kinds of special objects contained in this Parcelable's
- * marshalled representation.
- *
- * @return integer 0.
- */
- @Override
- public int describeContents() {
- return 0;
- }
-
- /**
- * Flatten this object in to a Parcel.
- *
- * @param out The Parcel in which the object should be written.
- * @param flags Additional flags about how the object should be written. May be 0 or
- * {@link #PARCELABLE_WRITE_RETURN_VALUE}.
- */
- @Override
- public void writeToParcel(Parcel out, int flags) {
- out.writeDouble(bearing);
- out.writeParcelable(target, flags);
- out.writeDouble(tilt);
- out.writeDouble(zoom);
-
- if (padding != null) {
- int length = padding.length;
- out.writeInt(length);
- for (double v : padding) {
- out.writeDouble(v);
- }
- } else {
- out.writeInt(-1);
- }
- }
-
- /**
- * Returns a String with the camera target, zoom, bearing and tilt.
- *
- * @return A String with CameraPosition information.
- */
- @Override
- public String toString() {
- return "Target: " + target + ", Zoom:" + zoom + ", Bearing:" + bearing + ", Tilt:" + tilt
- + ", Padding:" + Arrays.toString(padding);
- }
-
- /**
- * Compares this {@link CameraPosition} object with another {@link CameraPosition} and
- * determines if their target, zoom, tilt, and bearing match.
- *
- * @param o Another {@link CameraPosition} to compare with this object.
- * @return True if target, zoom, tilt, and bearing match this {@link CameraPosition} object.
- * Else, false.
- */
- @Override
- public boolean equals(@Nullable Object o) {
- if (this == o) {
- return true;
- }
-
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- CameraPosition cameraPosition = (CameraPosition) o;
- if (target != null && !target.equals(cameraPosition.target)) {
- return false;
- } else if (zoom != cameraPosition.zoom) {
- return false;
- } else if (tilt != cameraPosition.tilt) {
- return false;
- } else if (bearing != cameraPosition.bearing) {
- return false;
- } else if (!Arrays.equals(padding, cameraPosition.padding)) {
- return false;
- }
- return true;
- }
-
- /**
- * Gives an integer which can be used as the bucket number for storing elements of the set/map.
- * This bucket number is the address of the element inside the set/map. There's no guarantee
- * that this hash value will be consistent between different Java implementations, or even
- * between different execution runs of the same program.
- *
- * @return integer value you can use for storing element.
- */
- @Override
- public int hashCode() {
- int result;
- long temp;
- temp = Double.doubleToLongBits(bearing);
- result = (int) (temp ^ (temp >>> 32));
- result = 31 * result + (target != null ? target.hashCode() : 0);
- temp = Double.doubleToLongBits(tilt);
- result = 31 * result + (int) (temp ^ (temp >>> 32));
- temp = Double.doubleToLongBits(zoom);
- result = 31 * result + (int) (temp ^ (temp >>> 32));
- result = 31 * result + Arrays.hashCode(padding);
- return result;
- }
-
- /**
- * Builder for composing CameraPosition objects.
- */
- public static final class Builder {
-
- private double bearing = -1;
- @Nullable
- private LatLng target = null;
- private double tilt = -1;
- private double zoom = -1;
- private double[] padding = null;
-
- /**
- * Create an empty builder.
- */
- public Builder() {
- super();
- }
-
- /**
- * Create a builder with an existing CameraPosition data.
- *
- * @param previous Existing CameraPosition values to use
- */
- public Builder(@Nullable CameraPosition previous) {
- super();
- if (previous != null) {
- this.bearing = previous.bearing;
- this.target = previous.target;
- this.tilt = previous.tilt;
- this.zoom = previous.zoom;
- this.padding = previous.padding;
- }
- }
-
- /**
- * Create a builder with an existing CameraPosition data.
- *
- * @param typedArray TypedArray containing attribute values
- */
- public Builder(@Nullable TypedArray typedArray) {
- super();
- if (typedArray != null) {
- this.bearing = typedArray.getFloat(R.styleable.mapbox_MapView_mapbox_cameraBearing, 0.0f);
- double lat = typedArray.getFloat(R.styleable.mapbox_MapView_mapbox_cameraTargetLat, 0.0f);
- double lng = typedArray.getFloat(R.styleable.mapbox_MapView_mapbox_cameraTargetLng, 0.0f);
- this.target = new LatLng(lat, lng);
- this.tilt = typedArray.getFloat(R.styleable.mapbox_MapView_mapbox_cameraTilt, 0.0f);
- this.zoom = typedArray.getFloat(R.styleable.mapbox_MapView_mapbox_cameraZoom, 0.0f);
- }
- }
-
- /**
- * Create a builder from an existing CameraPositionUpdate update.
- *
- * @param update Update containing camera options
- */
- public Builder(@Nullable CameraUpdateFactory.CameraPositionUpdate update) {
- super();
- if (update != null) {
- bearing = update.getBearing();
- target = update.getTarget();
- tilt = update.getTilt();
- zoom = update.getZoom();
- padding = update.getPadding();
- }
- }
-
- /**
- * Create builder from an existing CameraPositionUpdate update.
- *
- * @param update Update containing camera options
- */
- public Builder(@Nullable CameraUpdateFactory.ZoomUpdate update) {
- super();
- if (update != null) {
- this.zoom = update.getZoom();
- }
- }
-
- /**
- * Sets the direction that the camera is pointing in, in degrees clockwise from north.
- *
- * @param bearing Bearing
- * @return this
- */
- @NonNull
- public Builder bearing(double bearing) {
- double direction = bearing;
-
- while (direction >= 360) {
- direction -= 360;
- }
- while (direction < 0) {
- direction += 360;
- }
-
- this.bearing = direction;
- return this;
- }
-
- /**
- * Sets the location where the camera is pointing at.
- *
- * @param location target of the camera
- * @return this
- */
- @NonNull
- public Builder target(LatLng location) {
- this.target = location;
- return this;
- }
-
- /**
- * Set the tilt of the camera in degrees
- * <p>
- * value is clamped to {@link MapboxConstants#MINIMUM_TILT} and {@link MapboxConstants#MAXIMUM_TILT}.
- * </p>
- *
- * @param tilt Tilt value of the camera
- * @return this
- */
- @NonNull
- public Builder tilt(@FloatRange(from = MapboxConstants.MINIMUM_TILT,
- to = MapboxConstants.MAXIMUM_TILT) double tilt) {
- this.tilt = MathUtils.clamp(tilt, MapboxConstants.MINIMUM_TILT, MapboxConstants.MAXIMUM_TILT);
- return this;
- }
-
- /**
- * Set the zoom of the camera
- * <p>
- * Zoom ranges from {@link MapboxConstants#MINIMUM_ZOOM} to {@link MapboxConstants#MAXIMUM_ZOOM}
- * </p>
- *
- * @param zoom Zoom value of the camera
- * @return this
- */
- @NonNull
- public Builder zoom(@FloatRange(from = MapboxConstants.MINIMUM_ZOOM,
- to = MapboxConstants.MAXIMUM_ZOOM) double zoom) {
- this.zoom = zoom;
- return this;
- }
-
- /**
- * Padding in pixels that shifts the viewport by the specified amount.
- * Applied padding is going to persist and impact following camera transformations.
- * <p>
- * Specified in left, top, right, bottom order.
- * </p>
- *
- * @param padding Camera padding
- * @return this
- */
- @NonNull
- public Builder padding(@Size(4) double[] padding) {
- this.padding = padding;
- return this;
- }
-
- /**
- * Padding in pixels that shifts the viewport by the specified amount.
- * Applied padding is going to persist and impact following camera transformations.
- * <p>
- * Specified in left, top, right, bottom order.
- * </p>
- *
- * @return this
- */
- @NonNull
- public Builder padding(double left, double top, double right, double bottom) {
- this.padding = new double[] {left, top, right, bottom};
- return this;
- }
-
- /**
- * Builds the CameraPosition.
- *
- * @return CameraPosition
- */
- public CameraPosition build() {
- return new CameraPosition(target, zoom, tilt, bearing, padding);
- }
- }
-}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdate.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdate.java
deleted file mode 100644
index 39b937210c..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdate.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.mapbox.mapboxsdk.camera;
-
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-
-import com.mapbox.mapboxsdk.maps.MapboxMap;
-
-/**
- * Interface definition for camera updates.
- */
-public interface CameraUpdate {
-
- /**
- * Get the camera position from the camera update.
- *
- * @param mapboxMap Map object to build the position from
- * @return the camera position from the implementing camera update
- */
- @Nullable
- CameraPosition getCameraPosition(@NonNull MapboxMap mapboxMap);
-
-}
-
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java
deleted file mode 100644
index b611456f43..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java
+++ /dev/null
@@ -1,637 +0,0 @@
-package com.mapbox.mapboxsdk.camera;
-
-import android.graphics.Point;
-import android.graphics.PointF;
-import android.support.annotation.IntDef;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-
-import com.mapbox.mapboxsdk.geometry.LatLng;
-import com.mapbox.mapboxsdk.geometry.LatLngBounds;
-import com.mapbox.mapboxsdk.maps.MapboxMap;
-import com.mapbox.mapboxsdk.maps.Projection;
-import com.mapbox.mapboxsdk.maps.UiSettings;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.Arrays;
-
-/**
- * Factory for creating CameraUpdate objects.
- */
-public final class CameraUpdateFactory {
-
- /**
- * Returns a CameraUpdate that moves the camera to a specified CameraPosition.
- *
- * @param cameraPosition Camera Position to change to
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate newCameraPosition(@NonNull CameraPosition cameraPosition) {
- return new CameraPositionUpdate(cameraPosition.bearing, cameraPosition.target, cameraPosition.tilt,
- cameraPosition.zoom, cameraPosition.padding);
- }
-
- /**
- * Returns a CameraUpdate that moves the center of the screen to a latitude and longitude
- * specified by a LatLng object. This centers the camera on the LatLng object.
- *
- * @param latLng Target location to change to
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate newLatLng(@NonNull LatLng latLng) {
- return new CameraPositionUpdate(-1, latLng, -1, -1, null);
- }
-
- /**
- * Returns a CameraUpdate that transforms the camera such that the specified
- * latitude/longitude bounds are centered on screen at the greatest possible zoom level while maintaining
- * current camera position bearing and tilt values.
- * <p>
- * You can specify padding, in order to inset the bounding box from the map view's edges.
- * The padding will not persist and impact following camera transformations.
- * </p>
- *
- * @param bounds Bounds to match Camera position with
- * @param padding Padding added to the bounds
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate newLatLngBounds(@NonNull LatLngBounds bounds, int padding) {
- return newLatLngBounds(bounds, padding, padding, padding, padding);
- }
-
- /**
- * Returns a CameraUpdate that transforms the camera such that the specified
- * latitude/longitude bounds are centered on screen at the greatest possible zoom level while using
- * provided bearing and tilt values.
- * <p>
- * You can specify padding, in order to inset the bounding box from the map view's edges.
- * The padding will not persist and impact following camera transformations.
- * </p>
- *
- * @param bounds Bounds to match Camera position with
- * @param bearing Bearing to take in account when generating the bounds
- * @param tilt Tilt to take in account when generating the bounds
- * @param padding Padding added to the bounds
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate newLatLngBounds(@NonNull LatLngBounds bounds, double bearing, double tilt, int padding) {
- return newLatLngBounds(bounds, bearing, tilt, padding, padding, padding, padding);
- }
-
- /**
- * Returns a CameraUpdate that transforms the camera such that the specified
- * latitude/longitude bounds are centered on screen at the greatest possible zoom level while maintaining
- * current camera position bearing and tilt values.
- * <p>
- * You can specify padding, in order to inset the bounding box from the map view's edges.
- * The padding will not persist and impact following camera transformations.
- * </p>
- *
- * @param bounds Bounds to base the Camera position out of
- * @param paddingLeft Padding left of the bounds
- * @param paddingTop Padding top of the bounds
- * @param paddingRight Padding right of the bounds
- * @param paddingBottom Padding bottom of the bounds
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate newLatLngBounds(@NonNull LatLngBounds bounds, int paddingLeft, int paddingTop,
- int paddingRight, int paddingBottom) {
- return new CameraBoundsUpdate(bounds, null, null, paddingLeft, paddingTop, paddingRight, paddingBottom);
- }
-
- /**
- * Returns a CameraUpdate that transforms the camera such that the specified
- * latitude/longitude bounds are centered on screen at the greatest possible zoom level while using
- * provided bearing and tilt values.
- * <p>
- * You can specify padding, in order to inset the bounding box from the map view's edges.
- * The padding will not persist and impact following camera transformations.
- * </p>
- *
- * @param bounds Bounds to base the Camera position out of
- * @param bearing Bearing to take in account when generating the bounds
- * @param tilt Tilt to take in account when generating the bounds
- * @param paddingLeft Padding left of the bounds
- * @param paddingTop Padding top of the bounds
- * @param paddingRight Padding right of the bounds
- * @param paddingBottom Padding bottom of the bounds
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate newLatLngBounds(@NonNull LatLngBounds bounds, double bearing, double tilt,
- int paddingLeft, int paddingTop, int paddingRight, int paddingBottom) {
- return new CameraBoundsUpdate(bounds, bearing, tilt, paddingLeft, paddingTop, paddingRight, paddingBottom);
- }
-
- /**
- * Returns a CameraUpdate that moves the center of the screen to a latitude and longitude
- * specified by a LatLng object taking the specified padding into account.
- *
- * @param latLng Target location to change to
- * @param zoom Zoom level to change to
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate newLatLngZoom(@NonNull LatLng latLng, double zoom) {
- return new CameraPositionUpdate(-1, latLng, -1, zoom, null);
- }
-
- /**
- * Returns a CameraUpdate that moves the center of the screen to a latitude and longitude
- * specified by a LatLng object, and moves to the given zoom level.
- * Applied padding is going to persist and impact following camera transformations.
- *
- * @param latLng Target location to change to
- * @param left Left padding
- * @param top Top padding
- * @param right Right padding
- * @param bottom Bottom padding
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate newLatLngPadding(@NonNull LatLng latLng,
- double left, double top, double right, double bottom) {
- return new CameraPositionUpdate(-1, latLng, -1, -1, new double[] {left, top, right, bottom});
- }
-
- /**
- * Returns a CameraUpdate that shifts the zoom level of the current camera viewpoint.
- *
- * @param amount Amount of zoom level to change with
- * @param focus Focus point of zoom
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate zoomBy(double amount, Point focus) {
- return new ZoomUpdate(amount, focus.x, focus.y);
- }
-
- /**
- * Returns a CameraUpdate that shifts the zoom level of the current camera viewpoint.
- *
- * @param amount Amount of zoom level to change with
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate zoomBy(double amount) {
- return new ZoomUpdate(ZoomUpdate.ZOOM_BY, amount);
- }
-
- /**
- * Returns a CameraUpdate that zooms in on the map by moving the viewpoint's height closer to
- * the Earth's surface. The zoom increment is 1.0.
- *
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate zoomIn() {
- return new ZoomUpdate(ZoomUpdate.ZOOM_IN);
- }
-
- /**
- * Returns a CameraUpdate that zooms out on the map by moving the viewpoint's height farther
- * away from the Earth's surface. The zoom increment is -1.0.
- *
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate zoomOut() {
- return new ZoomUpdate(ZoomUpdate.ZOOM_OUT);
- }
-
- /**
- * Returns a CameraUpdate that moves the camera viewpoint to a particular zoom level.
- *
- * @param zoom Zoom level to change to
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate zoomTo(double zoom) {
- return new ZoomUpdate(ZoomUpdate.ZOOM_TO, zoom);
- }
-
- /**
- * Returns a CameraUpdate that moves the camera viewpoint to a particular bearing.
- *
- * @param bearing Bearing to change to
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate bearingTo(double bearing) {
- return new CameraPositionUpdate(bearing, null, -1, -1, null);
- }
-
- /**
- * Returns a CameraUpdate that moves the camera viewpoint to a particular tilt.
- *
- * @param tilt Tilt to change to
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate tiltTo(double tilt) {
- return new CameraPositionUpdate(-1, null, tilt, -1, null);
- }
-
- /**
- * Returns a CameraUpdate that when animated changes the camera padding.
- * Applied padding is going to persist and impact following camera transformations.
- * <p>
- * Specified in left, top, right, bottom order.
- * </p>
- *
- * @param padding Padding to change to
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate paddingTo(double[] padding) {
- return new CameraPositionUpdate(-1, null, -1, -1, padding);
- }
-
- /**
- * Returns a CameraUpdate that when animated changes the camera padding.
- * Applied padding is going to persist and impact following camera transformations.
- * <p>
- * Specified in left, top, right, bottom order.
- * </p>
- *
- * @return CameraUpdate Final Camera Position
- */
- public static CameraUpdate paddingTo(double left, double top, double right, double bottom) {
- return paddingTo(new double[] {left, top, right, bottom});
- }
-
- //
- // CameraUpdate types
- //
-
- static final class CameraPositionUpdate implements CameraUpdate {
-
- private final double bearing;
- private final LatLng target;
- private final double tilt;
- private final double zoom;
- private final double[] padding;
-
- CameraPositionUpdate(double bearing, LatLng target, double tilt, double zoom, double[] padding) {
- this.bearing = bearing;
- this.target = target;
- this.tilt = tilt;
- this.zoom = zoom;
- this.padding = padding;
- }
-
- public LatLng getTarget() {
- return target;
- }
-
- public double getBearing() {
- return bearing;
- }
-
- public double getTilt() {
- return tilt;
- }
-
- public double getZoom() {
- return zoom;
- }
-
- public double[] getPadding() {
- return padding;
- }
-
- @Override
- public CameraPosition getCameraPosition(@NonNull MapboxMap mapboxMap) {
- if (target == null) {
- CameraPosition previousPosition = mapboxMap.getCameraPosition();
- return new CameraPosition.Builder(this)
- .target(previousPosition.target)
- .build();
- }
- return new CameraPosition.Builder(this).build();
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- CameraPositionUpdate that = (CameraPositionUpdate) o;
-
- if (Double.compare(that.bearing, bearing) != 0) {
- return false;
- }
- if (Double.compare(that.tilt, tilt) != 0) {
- return false;
- }
- if (Double.compare(that.zoom, zoom) != 0) {
- return false;
- }
- if (target != null ? !target.equals(that.target) : that.target != null) {
- return false;
- }
- return Arrays.equals(padding, that.padding);
- }
-
- @Override
- public int hashCode() {
- int result;
- long temp;
- temp = Double.doubleToLongBits(bearing);
- result = (int) (temp ^ (temp >>> 32));
- result = 31 * result + (target != null ? target.hashCode() : 0);
- temp = Double.doubleToLongBits(tilt);
- result = 31 * result + (int) (temp ^ (temp >>> 32));
- temp = Double.doubleToLongBits(zoom);
- result = 31 * result + (int) (temp ^ (temp >>> 32));
- result = 31 * result + Arrays.hashCode(padding);
- return result;
- }
-
- @Override
- public String toString() {
- return "CameraPositionUpdate{"
- + "bearing=" + bearing
- + ", target=" + target
- + ", tilt=" + tilt
- + ", zoom=" + zoom
- + ", padding=" + Arrays.toString(padding)
- + '}';
- }
- }
-
- static final class CameraBoundsUpdate implements CameraUpdate {
-
- private final LatLngBounds bounds;
- private final int[] padding;
- private final Double bearing;
- private final Double tilt;
-
- CameraBoundsUpdate(LatLngBounds bounds, Double bearing, Double tilt, int[] padding) {
- this.bounds = bounds;
- this.padding = padding;
- this.bearing = bearing;
- this.tilt = tilt;
- }
-
- CameraBoundsUpdate(LatLngBounds bounds, Double bearing, Double tilt, int paddingLeft,
- int paddingTop, int paddingRight, int paddingBottom) {
- this(bounds, bearing, tilt, new int[] {paddingLeft, paddingTop, paddingRight, paddingBottom});
- }
-
- public LatLngBounds getBounds() {
- return bounds;
- }
-
- public int[] getPadding() {
- return padding;
- }
-
- @Override
- public CameraPosition getCameraPosition(@NonNull MapboxMap mapboxMap) {
- if (bearing == null && tilt == null) {
- // use current camera position tilt and bearing
- return mapboxMap.getCameraForLatLngBounds(bounds, padding);
- } else {
- // use provided tilt and bearing
- assert bearing != null;
- assert tilt != null;
- return mapboxMap.getCameraForLatLngBounds(bounds, padding, bearing, tilt);
- }
- }
-
- @Override
- public boolean equals(@Nullable Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- CameraBoundsUpdate that = (CameraBoundsUpdate) o;
-
- if (!bounds.equals(that.bounds)) {
- return false;
- }
- return Arrays.equals(padding, that.padding);
- }
-
- @Override
- public int hashCode() {
- int result = bounds.hashCode();
- result = 31 * result + Arrays.hashCode(padding);
- return result;
- }
-
- @Override
- public String toString() {
- return "CameraBoundsUpdate{"
- + "bounds=" + bounds
- + ", padding=" + Arrays.toString(padding)
- + '}';
- }
- }
-
- static final class CameraMoveUpdate implements CameraUpdate {
-
- private float x;
- private float y;
-
- CameraMoveUpdate(float x, float y) {
- this.x = x;
- this.y = y;
- }
-
- @Override
- public CameraPosition getCameraPosition(@NonNull MapboxMap mapboxMap) {
- UiSettings uiSettings = mapboxMap.getUiSettings();
- Projection projection = mapboxMap.getProjection();
- // Calculate the new center point
- float viewPortWidth = uiSettings.getWidth();
- float viewPortHeight = uiSettings.getHeight();
- int[] padding = mapboxMap.getPadding();
-
- // we inverse the map padding, is reapplied when using moveTo/easeTo or animateTo
- PointF targetPoint = new PointF(
- (viewPortWidth - padding[0] + padding[1]) / 2 + x,
- (viewPortHeight + padding[1] - padding[3]) / 2 + y
- );
-
- LatLng latLng = projection.fromScreenLocation(targetPoint);
- CameraPosition previousPosition = mapboxMap.getCameraPosition();
- CameraPosition position =
- new CameraPosition.Builder()
- .target(latLng)
- .zoom(previousPosition.zoom)
- .tilt(previousPosition.tilt)
- .bearing(previousPosition.bearing)
- .build();
- return position;
- }
-
- @Override
- public boolean equals(@Nullable Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- CameraMoveUpdate that = (CameraMoveUpdate) o;
-
- if (Float.compare(that.x, x) != 0) {
- return false;
- }
- return Float.compare(that.y, y) == 0;
- }
-
- @Override
- public int hashCode() {
- int result = (x != +0.0f ? Float.floatToIntBits(x) : 0);
- result = 31 * result + (y != +0.0f ? Float.floatToIntBits(y) : 0);
- return result;
- }
-
- @Override
- public String toString() {
- return "CameraMoveUpdate{"
- + "x=" + x
- + ", y=" + y
- + '}';
- }
- }
-
- static final class ZoomUpdate implements CameraUpdate {
-
- @IntDef( {ZOOM_IN, ZOOM_OUT, ZOOM_BY, ZOOM_TO, ZOOM_TO_POINT})
- @Retention(RetentionPolicy.SOURCE)
- @interface Type {
- }
-
- static final int ZOOM_IN = 0;
- static final int ZOOM_OUT = 1;
- static final int ZOOM_BY = 2;
- static final int ZOOM_TO = 3;
- static final int ZOOM_TO_POINT = 4;
-
- @Type
- private final int type;
- private final double zoom;
- private float x;
- private float y;
-
- ZoomUpdate(@Type int type) {
- this.type = type;
- this.zoom = 0;
- }
-
- ZoomUpdate(@Type int type, double zoom) {
- this.type = type;
- this.zoom = zoom;
- }
-
- ZoomUpdate(double zoom, float x, float y) {
- this.type = ZOOM_TO_POINT;
- this.zoom = zoom;
- this.x = x;
- this.y = y;
- }
-
- public double getZoom() {
- return zoom;
- }
-
- @Type
- public int getType() {
- return type;
- }
-
- public float getX() {
- return x;
- }
-
- public float getY() {
- return y;
- }
-
- double transformZoom(double currentZoom) {
- switch (getType()) {
- case CameraUpdateFactory.ZoomUpdate.ZOOM_IN:
- currentZoom++;
- break;
- case CameraUpdateFactory.ZoomUpdate.ZOOM_OUT:
- currentZoom--;
- if (currentZoom < 0) {
- currentZoom = 0;
- }
- break;
- case CameraUpdateFactory.ZoomUpdate.ZOOM_TO:
- currentZoom = getZoom();
- break;
- case CameraUpdateFactory.ZoomUpdate.ZOOM_BY:
- currentZoom = currentZoom + getZoom();
- break;
- case CameraUpdateFactory.ZoomUpdate.ZOOM_TO_POINT:
- currentZoom = currentZoom + getZoom();
- break;
- }
- return currentZoom;
- }
-
- @Override
- public CameraPosition getCameraPosition(@NonNull MapboxMap mapboxMap) {
- CameraPosition cameraPosition = mapboxMap.getCameraPosition();
- if (getType() != CameraUpdateFactory.ZoomUpdate.ZOOM_TO_POINT) {
- return new CameraPosition.Builder(cameraPosition)
- .zoom(transformZoom(cameraPosition.zoom))
- .build();
- } else {
- return new CameraPosition.Builder(cameraPosition)
- .zoom(transformZoom(cameraPosition.zoom))
- .target(mapboxMap.getProjection().fromScreenLocation(new PointF(getX(), getY())))
- .build();
- }
- }
-
- @Override
- public boolean equals(@Nullable Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- ZoomUpdate that = (ZoomUpdate) o;
-
- if (type != that.type) {
- return false;
- }
- if (Double.compare(that.zoom, zoom) != 0) {
- return false;
- }
- if (Float.compare(that.x, x) != 0) {
- return false;
- }
- return Float.compare(that.y, y) == 0;
- }
-
- @Override
- public int hashCode() {
- int result;
- long temp;
- result = type;
- temp = Double.doubleToLongBits(zoom);
- result = 31 * result + (int) (temp ^ (temp >>> 32));
- result = 31 * result + (x != +0.0f ? Float.floatToIntBits(x) : 0);
- result = 31 * result + (y != +0.0f ? Float.floatToIntBits(y) : 0);
- return result;
- }
-
- @Override
- public String toString() {
- return "ZoomUpdate{"
- + "type=" + type
- + ", zoom=" + zoom
- + ", x=" + x
- + ", y=" + y
- + '}';
- }
- }
-}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/package-info.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/package-info.java
deleted file mode 100644
index 04ef699c21..0000000000
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * Contains the Mapbox Maps Android Camera API classes.
- */
-package com.mapbox.mapboxsdk.camera;