shortbread-tiles / shortbread-tilemaker

Tilemaker configuration to generate Shortbread vector tiles
https://shortbread-tiles.org/make-vectortiles/
19 stars 9 forks source link

Missing level 4 boundary segments because of filter on type #12

Closed yetzt closed 1 year ago

yetzt commented 1 year ago

The if way:Holds("type") then return filter in process.lua prevents certain segments of admin_level 4 boundaries to be included, since some segments contain a type property: Example Overpass Query

I don't know if this is a tagging problem since the missing segments i spotted are all within the Brandenbug/Mecklenburg-Vorpommern border, but the data has not been changed in a long time. I guess the filter on type is a shortcut to not to process the relations on higher level boundaries?

Nakaner commented 1 year ago

The current implementation returns all boundary ways which are a member of a boundary relation. Their admin_level attribute indicates the most important relation they belong to. For example, the boundary line between Baden-Württemberg and Grand Est is returned as AL 2 because it is the boundary between Germany and France as well.

Administrative boundary relations must have a type tag, ways should not have this tag. Way members of boundary relations are not required to have boundary=administrative. I used the type tag to distinguish ways from relations.

yetzt commented 1 year ago

Thanks for the clarification. I've removed the type property from the affected ways which should resolve it for the future.