Improve webgl coordinate precision. #1005
Merged
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.
For line, point, polygon, and contour features, this uses a localized origin for the view matrix to reduce jitter at high zoom levels.
Using global coordinates runs into the limitations of float precision, which manes that small movements are functionally rounded by that precision. When panning at high zoom levels this manifests as jitter where the features jump between discrete locations instead of panning smoothly. The default is to use the first coordinate of the data of the feature for the origin. For features that span a large area, this will not help the jitter far from that coordinate (but won't be any worse that before this PR). The origin function is exposed on the style object, so if a large area feature is needed, the application can bind geo.event.pan to recompute the origin upon significant changes in the map center at high zoom values.
Resolves #831.