Some patterns have emerged during development for how Sourdough layers handle simplification and merging of features. I think it's worth examining these patterns and ideally standardizing them so that layers are consistent with one another.
- Several layers contain line data which forms a network:
highways, railways, waterways. When simplifying these networks, we should avoid dropping short segments (since it may create the appearance of gaps in the network). And there may also be other, more sophisticated simplification strategies we can use for all of these layers, like pruning short spurs (segments that connect to the network at only one end) to reduce visual noise.
- Certain features tend to occur in great numbers (at least in certain areas), like
amenity=bench, natural=tree, and highway=street_lamp. It can significantly reduce tile sizes to merge these Points into a MultiPoint, primarily because this means just a single Feature ID for the MultiPoint instead of one for every Point. But if features don't have a unique ID, you can't use MapLibre's feature-state functionality to change their appearance when hovering or clicking them. So merging them prevents map developers from supporting certain kinds of interaction feedback. I think it's important to support these kinds of interactions on certain features (shops, restaurants, and other named POIs for example), but it's also a necessary trade-off to drop the unique IDs from other features in order to keep tile sizes manageable. Sourdough should have a clear and consistent policy about which features get unique IDs (possibly depending on zoom level, though this will require enhancements to Planetiler).
- More mundane, but also important: the tolerance parameters for Douglas-Peucker simplification and for merging nearby polygons should be standardized across all layers (unless there's a good reason to do otherwise).
Some patterns have emerged during development for how Sourdough layers handle simplification and merging of features. I think it's worth examining these patterns and ideally standardizing them so that layers are consistent with one another.
highways,railways,waterways. When simplifying these networks, we should avoid dropping short segments (since it may create the appearance of gaps in the network). And there may also be other, more sophisticated simplification strategies we can use for all of these layers, like pruning short spurs (segments that connect to the network at only one end) to reduce visual noise.amenity=bench,natural=tree, andhighway=street_lamp. It can significantly reduce tile sizes to merge these Points into a MultiPoint, primarily because this means just a single Feature ID for the MultiPoint instead of one for every Point. But if features don't have a unique ID, you can't use MapLibre'sfeature-statefunctionality to change their appearance when hovering or clicking them. So merging them prevents map developers from supporting certain kinds of interaction feedback. I think it's important to support these kinds of interactions on certain features (shops, restaurants, and other named POIs for example), but it's also a necessary trade-off to drop the unique IDs from other features in order to keep tile sizes manageable. Sourdough should have a clear and consistent policy about which features get unique IDs (possibly depending on zoom level, though this will require enhancements to Planetiler).