-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Pitched label legibility #4682
Commits on May 1, 2017
-
Introduce 'text/icon-pitch-scale' property which controls how
symbols scale relative to the rest of the map as tiles are tilted and panned. - '1' = previous behavior (symbols have same scale as the surrounding features) - '0' = symbols maintain the same size no matter what distance they're at - fraction values = split the difference - Curved labels currently use a broken approximation to determine glyph position. - This approach makes collision detection much more expensive because we pre-calculate collisions over a much greater scale range to account for pan operations changing the effective scale of tiles.
Configuration menu - View commit details
-
Copy full SHA for a3f39be - Browse repository at this point
Copy the full SHA a3f39beView commit details -
Configuration menu - View commit details
-
Copy full SHA for c0a7232 - Browse repository at this point
Copy the full SHA c0a7232View commit details -
'text-pitch-scaling' calculations must be based on label anchors
instead of glyph anchors in order to keep all glyphs in sync.
Configuration menu - View commit details
-
Copy full SHA for 0fa7793 - Browse repository at this point
Copy the full SHA 0fa7793View commit details -
Fix "labelMinScale" logic in getGlyphQuads:
No glyph should be able to show if any one of the glyphs in the label can't show.
Configuration menu - View commit details
-
Copy full SHA for 59e8768 - Browse repository at this point
Copy the full SHA 59e8768View commit details -
Configuration menu - View commit details
-
Copy full SHA for ffb62e1 - Browse repository at this point
Copy the full SHA ffb62e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for d16998a - Browse repository at this point
Copy the full SHA d16998aView commit details -
Configuration menu - View commit details
-
Copy full SHA for de939ae - Browse repository at this point
Copy the full SHA de939aeView commit details -
Calculate line collision boxes over a wider range to account for label
expansion in the distance.
Configuration menu - View commit details
-
Copy full SHA for fe33752 - Browse repository at this point
Copy the full SHA fe33752View commit details -
Make pitched collision detection more conservative:
When doing collision detection, assume all labels are scaled the same as the least scaled label in the tile.
Configuration menu - View commit details
-
Copy full SHA for eaa05d9 - Browse repository at this point
Copy the full SHA eaa05d9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 27fd05a - Browse repository at this point
Copy the full SHA 27fd05aView commit details -
Adjust collision tile scale range based on tile distance from camera.
Update collision tiles whenever the map moves because tile distance changes.
Configuration menu - View commit details
-
Copy full SHA for 3ca25e0 - Browse repository at this point
Copy the full SHA 3ca25e0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0495a31 - Browse repository at this point
Copy the full SHA 0495a31View commit details -
'max-camera-distance' style property allows selective hiding of labels
as they move into the distance.
Configuration menu - View commit details
-
Copy full SHA for f726efa - Browse repository at this point
Copy the full SHA f726efaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0e34868 - Browse repository at this point
Copy the full SHA 0e34868View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5921f93 - Browse repository at this point
Copy the full SHA 5921f93View commit details -
Explain obscure difference between collision grid bounding boxes
and boxes for collision scale calculation.
Configuration menu - View commit details
-
Copy full SHA for 1e33272 - Browse repository at this point
Copy the full SHA 1e33272View commit details -
Make render test summary failures searchable
(and accessible to color blind folk)
Configuration menu - View commit details
-
Copy full SHA for d382d55 - Browse repository at this point
Copy the full SHA d382d55View commit details -
Configuration menu - View commit details
-
Copy full SHA for 894b071 - Browse repository at this point
Copy the full SHA 894b071View commit details -
Configuration menu - View commit details
-
Copy full SHA for 413fd99 - Browse repository at this point
Copy the full SHA 413fd99View commit details -
Fix some tests: we create more line collision boxes now at the edge of
labels now, but make sure the position of the central boxes doesn't change.
Configuration menu - View commit details
-
Copy full SHA for 259ba28 - Browse repository at this point
Copy the full SHA 259ba28View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8fbadd2 - Browse repository at this point
Copy the full SHA 8fbadd2View commit details -
Keep track of "maximum pitch scaling" as well as minimum pitch scaling
Necessary so that we can make collision detection conservative in the near field as well as the far field.
Configuration menu - View commit details
-
Copy full SHA for b32aa68 - Browse repository at this point
Copy the full SHA b32aa68View commit details -
min/max pitch scaling needs to be calculated over the whole tile
before placement starts.
Configuration menu - View commit details
-
Copy full SHA for 792f1c8 - Browse repository at this point
Copy the full SHA 792f1c8View commit details -
Get debug collision boxes closer in sync with actual labels:
Must do pitch scaling based on label anchor point, not box anchor point.
Configuration menu - View commit details
-
Copy full SHA for 4bc4c26 - Browse repository at this point
Copy the full SHA 4bc4c26View commit details -
Configuration menu - View commit details
-
Copy full SHA for efa1f6a - Browse repository at this point
Copy the full SHA efa1f6aView commit details -
Bring collision debug boxes into line with symbols that aren't added …
…to buffers because their placementScale is above the maxScale for the collision tile.
Configuration menu - View commit details
-
Copy full SHA for 20c5502 - Browse repository at this point
Copy the full SHA 20c5502View commit details -
Eliminate major source of label flicker: "minimum pitch scale" setting
was unpredictably shared across tiles.
Configuration menu - View commit details
-
Copy full SHA for f45f304 - Browse repository at this point
Copy the full SHA f45f304View commit details -
- Don't show boxes over maxScale (it was getting too confusing) - Use green background for test so white boxes are visible.
Configuration menu - View commit details
-
Copy full SHA for be194a8 - Browse repository at this point
Copy the full SHA be194a8View commit details -
Configuration menu - View commit details
-
Copy full SHA for cf50802 - Browse repository at this point
Copy the full SHA cf50802View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d759f7 - Browse repository at this point
Copy the full SHA 7d759f7View commit details
Commits on May 2, 2017
-
Fix 'symbol-avoid-edges', which relies on edge collision boxes being
inserted before first CollisionFeature is added to a CollisionBoxArray.
Configuration menu - View commit details
-
Copy full SHA for a8f0316 - Browse repository at this point
Copy the full SHA a8f0316View commit details -
Temporarily fix tests by rolling back extended collision boxes for
line labels. This could lead to label collisions in the distant field.
Configuration menu - View commit details
-
Copy full SHA for e98af15 - Browse repository at this point
Copy the full SHA e98af15View commit details
Commits on May 3, 2017
-
Configuration menu - View commit details
-
Copy full SHA for 5e06300 - Browse repository at this point
Copy the full SHA 5e06300View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6e66906 - Browse repository at this point
Copy the full SHA 6e66906View commit details
Commits on May 4, 2017
-
Standardizing vertex shader precision on "highp" following discussion…
… in: #2096 Change some variable names from camel-case to underscore-separated.
Configuration menu - View commit details
-
Copy full SHA for 47f02f1 - Browse repository at this point
Copy the full SHA 47f02f1View commit details -
Configuration menu - View commit details
-
Copy full SHA for a8c7969 - Browse repository at this point
Copy the full SHA a8c7969View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0a7e169 - Browse repository at this point
Copy the full SHA 0a7e169View commit details -
Configuration menu - View commit details
-
Copy full SHA for f96db38 - Browse repository at this point
Copy the full SHA f96db38View commit details -
Configuration menu - View commit details
-
Copy full SHA for c293dbc - Browse repository at this point
Copy the full SHA c293dbcView commit details -
Only redo placement on pan operations if the map is tilted enough for
perspective to make a significant difference in collision detection.
Configuration menu - View commit details
-
Copy full SHA for f167af0 - Browse repository at this point
Copy the full SHA f167af0View commit details -
New approach to tilted curved labels with viewport pitch alignment:
- Lay out glyphs in tile space so we can use existing curve following logic - Space glyphs out based on the incidence angle of the middle of the label and the orientation of the middle of the label (So that a vertical line in the distance gets spaced out a lot) - Apply glyph rotation in projected space. Significant problems: - "We're out of space on this line" logic is mixed with collision detection logic, and they no longer stay in sync perfectly, so it's possible to have individual glyphs clipped before the whole label is clipped. - The spacing approximation doesn't work for highly curved labels, and you end up with silly looking results.
Configuration menu - View commit details
-
Copy full SHA for 5f02a52 - Browse repository at this point
Copy the full SHA 5f02a52View commit details