diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets')
3 files changed, 27 insertions, 10 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java index ed6ef5199a..b3a7fd787f 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java @@ -172,12 +172,14 @@ public final class CompassView extends AppCompatImageView implements Runnable, F final MapboxMap mapboxMap = this.mapboxMap.get(); final CompassView compassView = this.compassView.get(); if (mapboxMap != null && compassView != null) { - PointF focalPoint = compassView.getFocalPoint(); - if (focalPoint != null) { - mapboxMap.setFocalBearing(0, focalPoint.x, focalPoint.y, TIME_MAP_NORTH_ANIMATION); - } else { - mapboxMap.setFocalBearing(0, mapboxMap.getWidth() / 2, mapboxMap.getHeight() / 2, TIME_MAP_NORTH_ANIMATION); - } + //PointF focalPoint = compassView.getFocalPoint(); + //if (focalPoint != null) { + //mapboxMap.setFocalBearing(0, focalPoint.x, focalPoint.y, TIME_MAP_NORTH_ANIMATION); + //} else { + //mapboxMap.setFocalBearing(0, mapboxMap.getWidth() / 2, mapboxMap.getHeight() / 2, TIME_MAP_NORTH_ANIMATION); + //} + // FIXME: 10/02/2017 with animation and focal point + mapboxMap.resetNorth(); compassView.postDelayed(compassView, TIME_WAIT_IDLE + TIME_MAP_NORTH_ANIMATION); } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java index c9888c36d2..fdc9f2dcb0 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java @@ -32,6 +32,7 @@ import com.mapbox.mapboxsdk.constants.MyBearingTracking; import com.mapbox.mapboxsdk.constants.MyLocationTracking; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.location.LocationSource; +import com.mapbox.mapboxsdk.maps.Callback; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.Projection; import com.mapbox.services.android.telemetry.location.LocationEngine; @@ -60,6 +61,7 @@ public class MyLocationView extends View { private Location location; private long locationUpdateTimestamp; private float previousDirection; + private float metersPerPixel; private float accuracy; private Paint accuracyPaint; @@ -256,7 +258,6 @@ public class MyLocationView extends View { } final PointF pointF = screenLocation; - float metersPerPixel = (float) projection.getMetersPerPixelAtLatitude(location.getLatitude()); float accuracyPixels = (Float) accuracyAnimator.getAnimatedValue() / metersPerPixel / 2; float maxRadius = getWidth() / 2; accuracyPixels = accuracyPixels <= maxRadius ? accuracyPixels : maxRadius; @@ -333,6 +334,15 @@ public class MyLocationView extends View { setBearing(position.bearing); setTilt(position.tilt); } + + if (location != null) { + projection.getMetersPerPixelAtLatitude(location.getLatitude(), new Callback<Double>() { + @Override + public void onResult(Double aDouble) { + metersPerPixel = (float) aDouble.doubleValue(); + } + }); + } } public void onStart() { @@ -837,9 +847,14 @@ public class MyLocationView extends View { @Override void invalidate() { if (latLng != null) { - screenLocation = projection.toScreenLocation(latLng); + projection.toScreenLocation(latLng, new Callback<PointF>() { + @Override + public void onResult(PointF pointF) { + screenLocation = pointF; + MyLocationView.this.invalidate(); + } + }); } - MyLocationView.this.invalidate(); } } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationViewSettings.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationViewSettings.java index e9d823ebda..81ae044777 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationViewSettings.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationViewSettings.java @@ -21,7 +21,7 @@ public class MyLocationViewSettings { private FocalPointChangeListener focalPointChangeListener; // - // State + // MapThreadExecutor // private boolean enabled; |