systemed / tilemaker

Make OpenStreetMap vector tiles without the stack
https://tilemaker.org/
Other
1.4k stars 226 forks source link

Support writing MultiPoint into vector tiles #719

Closed daniel-j-h closed 1 month ago

daniel-j-h commented 2 months ago

It looks like tilemaker supports points but only points and not multipoints.

Storing points in vector tiles is highly inefficient due to the heavy vector tile message encoding that's needed to store two numbers for a point. I found a historic ticket on this going into more details: https://github.com/mapbox/vector-tile-spec/issues/35

It would be great if tilemaker could write out MultiPoints where possible to


For MultiPoints the vector tile geometry type is Point with multiple MoveTo commands.

Vector tile spec on MultiPoints

The vector tile decoding library used e.g. in Maplibre

MultiPoint read and write support in vtzero

MultiPoint writing usage example in vtzero

Tilemaker writing out a point

systemed commented 2 months ago

Good call. We already sort features by attribute so the trick here will be for the point-writing code (as you've identified above) to look ahead in the same way that the polygon and linestring writers just below already do, checking for .compatible and grouping if so.