[core] Remove support for setting minimum and maximum pitch
Support for limiting pitch was introduced in commit c4fc89977b ([core]
Added {set,get}{Min,Max}Pitch) in 2017 but was never exposed by the
platform SDKs. Simplify the Map interface by removing this unused
feature.
v2: Add util::PITCH_MIN
This commit is contained in:
@@ -83,10 +83,6 @@ public:
|
||||
double getMinZoom() const;
|
||||
void setMaxZoom(double);
|
||||
double getMaxZoom() const;
|
||||
void setMinPitch(double);
|
||||
double getMinPitch() const;
|
||||
void setMaxPitch(double);
|
||||
double getMaxPitch() const;
|
||||
|
||||
// North Orientation
|
||||
void setNorthOrientation(NorthOrientation);
|
||||
|
||||
@@ -33,6 +33,7 @@ constexpr double EARTH_RADIUS_M = 6378137;
|
||||
constexpr double LATITUDE_MAX = 85.051128779806604;
|
||||
constexpr double LONGITUDE_MAX = 180;
|
||||
constexpr double DEGREES_MAX = 360;
|
||||
constexpr double PITCH_MIN = 0.0;
|
||||
constexpr double PITCH_MAX = M_PI / 3;
|
||||
constexpr double MIN_ZOOM = 0.0;
|
||||
constexpr double MAX_ZOOM = 25.5;
|
||||
|
||||
@@ -307,28 +307,6 @@ double Map::getMaxZoom() const {
|
||||
return impl->transform.getState().getMaxZoom();
|
||||
}
|
||||
|
||||
void Map::setMinPitch(double minPitch) {
|
||||
impl->transform.setMinPitch(minPitch * util::DEG2RAD);
|
||||
if (impl->transform.getPitch() < minPitch) {
|
||||
jumpTo(CameraOptions().withPitch(minPitch));
|
||||
}
|
||||
}
|
||||
|
||||
double Map::getMinPitch() const {
|
||||
return impl->transform.getState().getMinPitch() * util::RAD2DEG;
|
||||
}
|
||||
|
||||
void Map::setMaxPitch(double maxPitch) {
|
||||
impl->transform.setMaxPitch(maxPitch * util::DEG2RAD);
|
||||
if (impl->transform.getPitch() > maxPitch) {
|
||||
jumpTo(CameraOptions().withPitch(maxPitch));
|
||||
}
|
||||
}
|
||||
|
||||
double Map::getMaxPitch() const {
|
||||
return impl->transform.getState().getMaxPitch() * util::RAD2DEG;
|
||||
}
|
||||
|
||||
#pragma mark - Size
|
||||
|
||||
void Map::setSize(const Size size) {
|
||||
|
||||
@@ -116,7 +116,7 @@ void Transform::easeTo(const CameraOptions& camera, const AnimationOptions& anim
|
||||
// Constrain camera options.
|
||||
zoom = util::clamp(zoom, state.getMinZoom(), state.getMaxZoom());
|
||||
const double scale = state.zoomScale(zoom);
|
||||
pitch = util::clamp(pitch, state.min_pitch, state.max_pitch);
|
||||
pitch = util::clamp(pitch, util::PITCH_MIN, util::PITCH_MAX);
|
||||
|
||||
// Minimize rotation by taking the shorter path around the circle.
|
||||
bearing = _normalizeAngle(bearing, state.bearing);
|
||||
@@ -181,7 +181,7 @@ void Transform::flyTo(const CameraOptions &camera, const AnimationOptions &anima
|
||||
|
||||
// Constrain camera options.
|
||||
zoom = util::clamp(zoom, state.getMinZoom(), state.getMaxZoom());
|
||||
pitch = util::clamp(pitch, state.min_pitch, state.max_pitch);
|
||||
pitch = util::clamp(pitch, util::PITCH_MIN, util::PITCH_MAX);
|
||||
|
||||
// Minimize rotation by taking the shorter path around the circle.
|
||||
bearing = _normalizeAngle(bearing, state.bearing);
|
||||
@@ -361,16 +361,6 @@ void Transform::setMaxZoom(const double maxZoom) {
|
||||
state.setMaxZoom(maxZoom);
|
||||
}
|
||||
|
||||
void Transform::setMinPitch(double minPitch) {
|
||||
if (std::isnan(minPitch)) return;
|
||||
state.setMinPitch(minPitch);
|
||||
}
|
||||
|
||||
void Transform::setMaxPitch(double maxPitch) {
|
||||
if (std::isnan(maxPitch)) return;
|
||||
state.setMaxPitch(maxPitch);
|
||||
}
|
||||
|
||||
#pragma mark - Bearing
|
||||
|
||||
void Transform::rotateBy(const ScreenCoordinate& first, const ScreenCoordinate& second, const AnimationOptions& animation) {
|
||||
|
||||
@@ -55,8 +55,6 @@ public:
|
||||
void setLatLngBounds(optional<LatLngBounds>);
|
||||
void setMinZoom(double);
|
||||
void setMaxZoom(double);
|
||||
void setMinPitch(double);
|
||||
void setMaxPitch(double);
|
||||
|
||||
// Zoom
|
||||
|
||||
|
||||
@@ -221,26 +221,6 @@ double TransformState::getMaxZoom() const {
|
||||
return scaleZoom(max_scale);
|
||||
}
|
||||
|
||||
void TransformState::setMinPitch(double minPitch) {
|
||||
if (minPitch <= getMaxPitch()) {
|
||||
min_pitch = minPitch;
|
||||
}
|
||||
}
|
||||
|
||||
double TransformState::getMinPitch() const {
|
||||
return min_pitch;
|
||||
}
|
||||
|
||||
void TransformState::setMaxPitch(double maxPitch) {
|
||||
if (maxPitch >= getMinPitch()) {
|
||||
max_pitch = maxPitch;
|
||||
}
|
||||
}
|
||||
|
||||
double TransformState::getMaxPitch() const {
|
||||
return max_pitch;
|
||||
}
|
||||
|
||||
#pragma mark - Rotation
|
||||
|
||||
float TransformState::getBearing() const {
|
||||
|
||||
@@ -61,10 +61,6 @@ public:
|
||||
double getMinZoom() const;
|
||||
void setMaxZoom(double);
|
||||
double getMaxZoom() const;
|
||||
void setMinPitch(double);
|
||||
double getMinPitch() const;
|
||||
void setMaxPitch(double);
|
||||
double getMaxPitch() const;
|
||||
|
||||
// Rotation
|
||||
float getBearing() const;
|
||||
@@ -102,8 +98,6 @@ private:
|
||||
// Limit the amount of zooming possible on the map.
|
||||
double min_scale = std::pow(2, 0);
|
||||
double max_scale = std::pow(2, util::DEFAULT_MAX_ZOOM);
|
||||
double min_pitch = 0.0;
|
||||
double max_pitch = util::PITCH_MAX;
|
||||
|
||||
NorthOrientation orientation = NorthOrientation::Upwards;
|
||||
|
||||
|
||||
@@ -761,22 +761,3 @@ TEST(Transform, LatLngBounds) {
|
||||
transform.moveBy(ScreenCoordinate { 500, 0 });
|
||||
ASSERT_DOUBLE_EQ(transform.getLatLng().longitude(), 120.0);
|
||||
}
|
||||
|
||||
TEST(Transform, PitchBounds) {
|
||||
Transform transform;
|
||||
transform.resize({ 1000, 1000 });
|
||||
|
||||
transform.jumpTo(CameraOptions().withCenter(LatLng()).withZoom(transform.getState().getMaxZoom()));
|
||||
|
||||
ASSERT_DOUBLE_EQ(transform.getState().getPitch() * util::RAD2DEG, 0.0);
|
||||
ASSERT_DOUBLE_EQ(transform.getState().getMinPitch() * util::RAD2DEG, 0.0);
|
||||
ASSERT_DOUBLE_EQ(transform.getState().getMaxPitch() * util::RAD2DEG, 60.0);
|
||||
|
||||
transform.setMinPitch(45.0 * util::DEG2RAD);
|
||||
transform.jumpTo(CameraOptions().withPitch(0));
|
||||
ASSERT_NEAR(transform.getState().getPitch() * util::RAD2DEG, 45.0, 1e-5);
|
||||
|
||||
transform.setMaxPitch(55.0 * util::DEG2RAD);
|
||||
transform.jumpTo(CameraOptions().withPitch(60.0));
|
||||
ASSERT_NEAR(transform.getState().getPitch() * util::RAD2DEG, 55.0, 1e-5);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user