summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--platform/darwin/MGLMapCamera.mm2
-rw-r--r--platform/ios/src/MGLMapView.mm13
2 files changed, 11 insertions, 4 deletions
diff --git a/platform/darwin/MGLMapCamera.mm b/platform/darwin/MGLMapCamera.mm
index 4a62919679..93f3bd45e0 100644
--- a/platform/darwin/MGLMapCamera.mm
+++ b/platform/darwin/MGLMapCamera.mm
@@ -43,7 +43,7 @@
{
return [[self alloc] initWithCenterCoordinate:centerCoordinate
altitude:distance
- pitch:(CGFloat)pitch
+ pitch:pitch
heading:heading];
}
diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm
index a728641ab8..a488c0bd49 100644
--- a/platform/ios/src/MGLMapView.mm
+++ b/platform/ios/src/MGLMapView.mm
@@ -61,6 +61,11 @@ typedef NS_ENUM(NSUInteger, MGLUserTrackingState) {
NSString *const MGLMapboxSetupDocumentationURLDisplayString = @"mapbox.com/help/first-steps-ios-sdk";
const NSTimeInterval MGLAnimationDuration = 0.3;
+
+/// Duration of an animation due to a user location update, typically chosen to
+/// match a typical interval between user location updates.
+const NSTimeInterval MGLUserLocationAnimationDuration = 1.0;
+
const CGSize MGLAnnotationUpdateViewportOutset = {150, 150};
const CGFloat MGLMinimumZoom = 3;
const NSUInteger MGLTargetFrameInterval = 1; //Target FPS will be 60 divided by this value
@@ -1630,8 +1635,9 @@ std::chrono::steady_clock::duration MGLDurationInSeconds(float duration)
- (void)resetPosition
{
- _mbglMap->cancelTransitions();
- _mbglMap->resetPosition();
+ MGLMapCamera *camera = [MGLMapCamera camera];
+ camera.altitude = MGLAltitudeForZoomLevel(0, 0, 0, self.frame.size);
+ self.camera = camera;
}
- (void)cycleDebugOptions
@@ -1916,6 +1922,7 @@ std::chrono::steady_clock::duration MGLDurationInSeconds(float duration)
- (void)setCamera:(MGLMapCamera *)camera withDuration:(NSTimeInterval)duration animationTimingFunction:(nullable CAMediaTimingFunction *)function completionHandler:(nullable void (^)(void))completion
{
+ self.userTrackingMode = MGLUserTrackingModeNone;
_mbglMap->cancelTransitions();
if ([self.camera isEqual:camera])
{
@@ -3103,7 +3110,7 @@ std::chrono::steady_clock::duration MGLDurationInSeconds(float duration)
edgePadding:insets
zoomLevel:self.zoomLevel
direction:course
- duration:animated ? 1 : 0
+ duration:animated ? MGLUserLocationAnimationDuration : 0
animationTimingFunction:linearFunction
completionHandler:NULL];
}