diff options
-rw-r--r-- | include/mbgl/map/map.hpp | 5 | ||||
-rwxr-xr-x | platform/android/src/native_map_view.cpp | 5 | ||||
-rw-r--r-- | platform/ios/src/MGLMapView.mm | 9 | ||||
-rw-r--r-- | platform/macos/src/MGLMapView.mm | 7 | ||||
-rw-r--r-- | platform/node/src/node_map.cpp | 2 | ||||
-rw-r--r-- | platform/qt/src/qmapboxgl.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/map/map.cpp | 22 |
7 files changed, 20 insertions, 34 deletions
diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp index b05747df8d..5674902fe9 100644 --- a/include/mbgl/map/map.hpp +++ b/include/mbgl/map/map.hpp @@ -107,11 +107,6 @@ public: void resetNorth(const AnimationOptions& = {{mbgl::Milliseconds(500)}}); void resetNorth(const EdgeInsets&, const AnimationOptions& = {{mbgl::Milliseconds(500)}}); - // Pitch - void setPitch(double pitch, const AnimationOptions& = {}); - void setPitch(double pitch, optional<ScreenCoordinate>, const AnimationOptions& = {}); - double getPitch() const; - // North Orientation void setNorthOrientation(NorthOrientation); NorthOrientation getNorthOrientation() const; diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index 4755cc28c4..94bcbe3cab 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -395,11 +395,12 @@ void NativeMapView::resetPosition(jni::JNIEnv&) { } jni::jdouble NativeMapView::getPitch(jni::JNIEnv&) { - return map->getPitch(); + return *map->getCameraOptions().pitch; } void NativeMapView::setPitch(jni::JNIEnv&, jni::jdouble pitch, jni::jlong duration) { - map->setPitch(pitch, mbgl::AnimationOptions{mbgl::Milliseconds(duration)}); + map->easeTo(mbgl::CameraOptions().withPitch(pitch), + mbgl::AnimationOptions{ mbgl::Milliseconds(duration) }); } void NativeMapView::setZoom(jni::JNIEnv&, jni::jdouble zoom, jni::jdouble x, jni::jdouble y, jni::jlong duration) { diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index aa57f75e16..a7f201e8cf 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -2076,7 +2076,7 @@ public: if (twoFingerDrag.state == UIGestureRecognizerStateBegan) { - initialPitch = self.mbglMap.getPitch(); + initialPitch = *self.mbglMap.getCameraOptions().pitch; [self trackGestureEvent:MMEEventGesturePitchStart forRecognizer:twoFingerDrag]; [self notifyGestureDidBegin]; } @@ -2095,7 +2095,9 @@ public: if ([self _shouldChangeFromCamera:oldCamera toCamera:toCamera]) { - self.mbglMap.setPitch(pitchNew, mbgl::ScreenCoordinate { centerPoint.x, centerPoint.y }); + self.mbglMap.jumpTo(mbgl::CameraOptions() + .withPitch(pitchNew) + .withAnchor(mbgl::ScreenCoordinate { centerPoint.x, centerPoint.y })); } [self cameraIsChanging]; @@ -3784,10 +3786,11 @@ public: return nil; } + mbgl::CameraOptions mapCamera = self.mbglMap.getCameraOptions(); CLLocationCoordinate2D centerCoordinate = MGLLocationCoordinate2DFromLatLng(cameraOptions.center ? *cameraOptions.center : self.mbglMap.getLatLng()); double zoomLevel = cameraOptions.zoom ? *cameraOptions.zoom : self.zoomLevel; CLLocationDirection direction = cameraOptions.angle ? mbgl::util::wrap(*cameraOptions.angle, 0., 360.) : self.direction; - CGFloat pitch = cameraOptions.pitch ? *cameraOptions.pitch : self.mbglMap.getPitch(); + CGFloat pitch = cameraOptions.pitch ? *cameraOptions.pitch : *mapCamera.pitch; CLLocationDistance altitude = MGLAltitudeForZoomLevel(zoomLevel, pitch, centerCoordinate.latitude, self.frame.size); return [MGLMapCamera cameraLookingAtCenterCoordinate:centerCoordinate altitude:altitude pitch:pitch heading:direction]; } diff --git a/platform/macos/src/MGLMapView.mm b/platform/macos/src/MGLMapView.mm index 03088ac5c6..21aa2c3bef 100644 --- a/platform/macos/src/MGLMapView.mm +++ b/platform/macos/src/MGLMapView.mm @@ -1357,10 +1357,11 @@ public: } - (MGLMapCamera *)cameraForCameraOptions:(const mbgl::CameraOptions &)cameraOptions { + mbgl::CameraOptions mapCamera = _mbglMap->getCameraOptions(); CLLocationCoordinate2D centerCoordinate = MGLLocationCoordinate2DFromLatLng(cameraOptions.center ? *cameraOptions.center : _mbglMap->getLatLng()); double zoomLevel = cameraOptions.zoom ? *cameraOptions.zoom : self.zoomLevel; CLLocationDirection direction = cameraOptions.angle ? mbgl::util::wrap(*cameraOptions.angle, 0., 360.) : self.direction; - CGFloat pitch = cameraOptions.pitch ? *cameraOptions.pitch : _mbglMap->getPitch(); + CGFloat pitch = cameraOptions.pitch ? *cameraOptions.pitch : *mapCamera.pitch; CLLocationDistance altitude = MGLAltitudeForZoomLevel(zoomLevel, pitch, centerCoordinate.latitude, self.frame.size); @@ -1477,7 +1478,7 @@ public: if (gestureRecognizer.state == NSGestureRecognizerStateBegan) { _directionAtBeginningOfGesture = self.direction; - _pitchAtBeginningOfGesture = _mbglMap->getPitch(); + _pitchAtBeginningOfGesture = *_mbglMap->getCameraOptions().pitch; } else if (gestureRecognizer.state == NSGestureRecognizerStateChanged) { MGLMapCamera *oldCamera = self.camera; BOOL didChangeCamera = NO; @@ -1490,7 +1491,7 @@ public: [self didChangeValueForKey:@"direction"]; } if (self.pitchEnabled) { - _mbglMap->setPitch(_pitchAtBeginningOfGesture + delta.y / 5, center); + _mbglMap->jumpTo(mbgl::CameraOptions().withPitch(_pitchAtBeginningOfGesture + delta.y / 5).withAnchor(center)); didChangeCamera = YES; } diff --git a/platform/node/src/node_map.cpp b/platform/node/src/node_map.cpp index d6a5941bcb..f1a29145cf 100644 --- a/platform/node/src/node_map.cpp +++ b/platform/node/src/node_map.cpp @@ -993,7 +993,7 @@ void NodeMap::SetPitch(const Nan::FunctionCallbackInfo<v8::Value>& info) { } try { - nodeMap->map->setPitch(info[0]->NumberValue()); + nodeMap->map->jumpTo(mbgl::CameraOptions().withPitch(info[0]->NumberValue())); } catch (const std::exception &ex) { return Nan::ThrowError(ex.what()); } diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp index 8059960601..cdeb4a962a 100644 --- a/platform/qt/src/qmapboxgl.cpp +++ b/platform/qt/src/qmapboxgl.cpp @@ -879,12 +879,12 @@ void QMapboxGL::setBearing(double degrees, const QPointF ¢er) */ double QMapboxGL::pitch() const { - return d_ptr->mapObj->getPitch(); + return *d_ptr->mapObj->getCameraOptions().pitch; } void QMapboxGL::setPitch(double pitch_) { - d_ptr->mapObj->setPitch(pitch_); + d_ptr->mapObj->jumpTo(mbgl::CameraOptions().withPitch(pitch_)); } void QMapboxGL::pitchBy(double pitch_) diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index b02d784e75..c3e5edc688 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -330,8 +330,8 @@ double Map::getMaxZoom() const { void Map::setMinPitch(double minPitch) { impl->transform.setMinPitch(minPitch * util::DEG2RAD); - if (getPitch() < minPitch) { - setPitch(minPitch); + if (impl->transform.getPitch() < minPitch) { + jumpTo(CameraOptions().withPitch(minPitch)); } } @@ -341,8 +341,8 @@ double Map::getMinPitch() const { void Map::setMaxPitch(double maxPitch) { impl->transform.setMaxPitch(maxPitch * util::DEG2RAD); - if (getPitch() > maxPitch) { - setPitch(maxPitch); + if (impl->transform.getPitch() > maxPitch) { + jumpTo(CameraOptions().withPitch(maxPitch)); } } @@ -389,20 +389,6 @@ void Map::resetNorth(const AnimationOptions& animation) { easeTo(CameraOptions().withAngle(0.0), animation); } -#pragma mark - Pitch - -void Map::setPitch(double pitch, const AnimationOptions& animation) { - easeTo(CameraOptions().withPitch(pitch), animation); -} - -void Map::setPitch(double pitch, optional<ScreenCoordinate> anchor, const AnimationOptions& animation) { - easeTo(CameraOptions().withPitch(pitch).withAnchor(anchor), animation); -} - -double Map::getPitch() const { - return impl->transform.getPitch() * util::RAD2DEG; -} - #pragma mark - North Orientation void Map::setNorthOrientation(NorthOrientation orientation) { |