[android] - correct android to core conversion of camera options. (#6660)

* [android] - correct android to core conversion of camera options.

* fix MarkerView tilting, tilt is already in degrees

* same fix for MyLocationView
This commit is contained in:
Tobrun
2016-10-12 10:56:38 +02:00
committed by GitHub
parent 2726f9b8ae
commit e0b025ab4d
4 changed files with 16 additions and 26 deletions

View File

@@ -171,10 +171,10 @@ public final class CameraPosition implements Parcelable {
public Builder(CameraUpdateFactory.CameraPositionUpdate update) {
super();
if (update != null) {
this.bearing = update.getBearing();
this.target = update.getTarget();
this.tilt = update.getTilt();
this.zoom = update.getZoom();
bearing(update.getBearing());
target(update.getTarget());
tilt(update.getTilt());
zoom(update.getZoom());
}
}

View File

@@ -185,7 +185,7 @@ public final class CameraUpdateFactory {
CameraPosition previousPosition = mapboxMap.getCameraPosition();
if (target == null) {
return new CameraPosition.Builder()
.tilt(Math.toDegrees(tilt))
.tilt(tilt)
.zoom(zoom)
.bearing(bearing)
.target(previousPosition.target)
@@ -302,21 +302,12 @@ public final class CameraUpdateFactory {
LatLng latLng = projection.fromScreenLocation(targetPoint);
CameraPosition previousPosition = mapboxMap.getCameraPosition();
if (latLng != null) {
return new CameraPosition.Builder()
.target(latLng)
.zoom(previousPosition.zoom)
.tilt(previousPosition.tilt)
.bearing(previousPosition.bearing)
.build();
} else {
return new CameraPosition.Builder()
.tilt(Math.toDegrees(previousPosition.tilt))
.zoom(previousPosition.zoom)
.bearing(previousPosition.bearing)
.target(previousPosition.target)
.build();
}
return new CameraPosition.Builder()
.target(latLng != null ? latLng : previousPosition.target)
.zoom(previousPosition.zoom)
.tilt(previousPosition.tilt)
.bearing(previousPosition.bearing)
.build();
}
}

View File

@@ -1314,7 +1314,7 @@ public class MapView extends FrameLayout {
return;
}
nativeMapView.cancelTransitions();
nativeMapView.jumpTo(bearing, center, pitch, zoom);
nativeMapView.jumpTo(Math.toRadians(-bearing), center, Math.toRadians(pitch), zoom);
}
void easeTo(double bearing, LatLng center, long duration, double pitch, double zoom, boolean easingInterpolator, @Nullable final MapboxMap.CancelableCallback cancelableCallback) {
@@ -1338,7 +1338,7 @@ public class MapView extends FrameLayout {
});
}
nativeMapView.easeTo(bearing, center, duration, pitch, zoom, easingInterpolator);
nativeMapView.easeTo(Math.toRadians(-bearing), center, duration, Math.toRadians(pitch), zoom, easingInterpolator);
}
void flyTo(double bearing, LatLng center, long duration, double pitch, double zoom, @Nullable final MapboxMap.CancelableCallback cancelableCallback) {
@@ -1362,7 +1362,7 @@ public class MapView extends FrameLayout {
});
}
nativeMapView.flyTo(bearing, center, duration, pitch, zoom);
nativeMapView.flyTo(Math.toRadians(-bearing), center, duration, Math.toRadians(pitch), zoom);
}
private void adjustTopOffsetPixels() {
@@ -1539,7 +1539,7 @@ public class MapView extends FrameLayout {
}
CameraPosition position = new CameraPosition.Builder(nativeMapView.getCameraValues()).build();
myLocationView.setCameraPosition(position);
mapboxMap.getMarkerViewManager().setTilt((float) Math.toDegrees(position.tilt));
mapboxMap.getMarkerViewManager().setTilt((float) position.tilt);
return position;
}

View File

@@ -36,7 +36,6 @@ import com.mapbox.mapboxsdk.location.LocationListener;
import com.mapbox.mapboxsdk.location.LocationServices;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.Projection;
import com.mapbox.mapboxsdk.utils.MathUtils;
import java.lang.ref.WeakReference;
@@ -322,7 +321,7 @@ public class MyLocationView extends View {
}
public void setCameraPosition(CameraPosition position) {
setTilt(MathUtils.clamp(Math.toDegrees(position.tilt), 0.0, 60.0));
setTilt(position.tilt);
setBearing(position.bearing);
}