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.
Currently, when using
"symbol-placement": "line"
and"icon-rotation-alignment": "map"
, the angle of the icon is computed in ol-mapbox-style, as we know the location of the icon placement but not the corresponding line segment information. So the computation first tries to determine on which line segment the icon is located, then computes the slope of this segment and uses that as the rotation of the icon.However, the algorithm used to determine on which segment is the icon is too simplistic: it simply takes the first segment for which the icon is inside the bounding box. However, there is no guarantee that this segment is the correct one and it is quite easy to construct a counter-example giving a wrong rotation angle:
while it should be
This pull request proposes to replace this bounding box by a more precise comparison. I used to 0.001 tolerance to avoid dealing with potential floating point unpleasantness, I don't know if it is the ideal value but it is anyway much more precise than the current version.