diff --git a/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt b/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt index 2bd4079bd..a471e13ca 100644 --- a/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt +++ b/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt @@ -182,10 +182,13 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame private fun updateMaxBounds(mapView: RNMBXMapView) { val map = mapView.getMapboxMap() + val currentBounds = map.getBounds() val builder = CameraBoundsOptions.Builder() builder.bounds(mMaxBounds?.toBounds()) builder.minZoom(mMinZoomLevel ?: 0.0) // Passing null does not reset this value. builder.maxZoom(mMaxZoomLevel ?: 25.0) // Passing null does not reset this value. + builder.minPitch(currentBounds.minPitch) + builder.maxPitch(currentBounds.maxPitch) map.setBounds(builder.build()) mCameraStop?.let { updateCamera(it, mapView) } } diff --git a/ios/RNMBX/RNMBXCamera.swift b/ios/RNMBX/RNMBXCamera.swift index 191bfe54e..bc3f6321a 100644 --- a/ios/RNMBX/RNMBXCamera.swift +++ b/ios/RNMBX/RNMBXCamera.swift @@ -331,8 +331,9 @@ open class RNMBXCamera : RNMBXMapAndMapViewComponentBase { func _updateMaxBounds() { withMapView { map in + let current = map.mapboxMap.cameraBounds var options = CameraBoundsOptions() - + if let maxBounds = self.maxBoundsFeature { logged("RNMBXCamera._updateMaxBounds._toCoordinateBounds") { options.bounds = try self._toCoordinateBounds(maxBounds) @@ -342,7 +343,9 @@ open class RNMBXCamera : RNMBXMapAndMapViewComponentBase { } options.minZoom = self.minZoomLevel?.CGFloat options.maxZoom = self.maxZoomLevel?.CGFloat - + options.minPitch = current.minPitch + options.maxPitch = current.maxPitch + logged("RNMBXCamera._updateMaxBounds") { try map.mapboxMap.setCameraBounds(with: options) } diff --git a/ios/RNMBX/RNMBXMapViewComponentView.mm b/ios/RNMBX/RNMBXMapViewComponentView.mm index 6ee6808cd..f079b89e6 100644 --- a/ios/RNMBX/RNMBXMapViewComponentView.mm +++ b/ios/RNMBX/RNMBXMapViewComponentView.mm @@ -192,6 +192,11 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared & RNMBX_REMAP_OPTIONAL_PROP_BOOL(rotateEnabled, reactRotateEnabled) RNMBX_REMAP_OPTIONAL_PROP_BOOL(pitchEnabled, reactPitchEnabled) + + id maxPitch = RNMBXConvertFollyDynamicToId(newViewProps.maxPitch); + if (maxPitch != nil) { + _view.reactMaxPitch = maxPitch; + } RNMBX_REMAP_OPTIONAL_PROP_NSDictionary(gestureSettings, reactGestureSettings)