←back to thread

OpenStreetMap's New Vector Tiles

(tech.marksblogg.com)
479 points marklit | 4 comments | | HN request time: 0s | source
Show context
Someone ◴[] No.42183666[source]
> Imagery should appear much sharper and switching the language of the labels should become possible.

I expect that to work sub-optimally. Label dimensions are far from guaranteed to stay the same if you change language, and label dimensions interact with map layout, even influencing what to show.

If your labels grow larger, they may end up covering too much of the map or even overlapping. If they grow smaller, users may wonder why a city that was omitted before because of space constraints doesn’t show in the empty space created.

replies(3): >>42183722 #>>42183940 #>>42185036 #
1. jayd16 ◴[] No.42185036[source]
Why would you expect the layout algorithm to be significantly different?
replies(1): >>42185152 #
2. teraflop ◴[] No.42185152[source]
It's not that the layout algorithm is different, it's that the algorithm tries to optimize the positions of text labels to get an aesthetically pleasing spacing, while preventing them from overlapping each other.

If you keep the label positions the same, but translate the text, then the layout will have been computed with the wrong bounding boxes, and you will tend to get wrong spacing and unintended overlaps.

replies(2): >>42188271 #>>42190700 #
3. Someone ◴[] No.42188271[source]
> the algorithm tries to optimize the positions of text labels

Not only that, deciding whether to show a label at all can depend on its size and shape, and if a label deemed important becomes larger that can lead to the decision to not show some map details (in an ideal world)

4. everybodyknows ◴[] No.42190700[source]
Where can we learn more about the label positioning/enabling algorithms? I'm wondering at what stages of the vector-tile rendering pipeline various actions happen e.g. selecting for a particular language, binding into the tile (single object?), avoiding crowding line geometry, avoiding crowding of other labels, font selection, rasterization, ...