respect padding in cameraForBounds when using globe projection #13126
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #12498
As described in the issue #12498 the
fitBounds
and subsequently thecameraForBounds
methods do not respect the padding when globe projection is used.In the code
_cameraForBoundsOnGlobe
just ignored the padding altogether. I extracted the part of the code that adds the padding to theaabb
s in camera space and used it in globe and mercator case. I also added a test to thecamera.test.js
file.With Padding
Previous
With the changes
Without padding
Previous:
With the changes:
(It's not the same picture I swear! :D)
Visual Testing
In order to verify the functionality visually I created a test scenario html file, there you can move around the markers and see that all possible cases produce a functional camera transform:
Launch Checklist
@mapbox/map-design-team
@mapbox/static-apis
if this PR includes style spec API or visual changes.@mapbox/gl-native
if this PR includes shader changes or needs a native port.