Het kwam door dit stukje code:
if (allowedTags.contains(e.getKey()) ||
allowedTags.contains(e.getKey(), e.getValue())) {
hasAllowedTags = true;
}
Het eerste stukje kijkt alleen naar de key. In dit geval landuse. Hierdoor word iedere landuse doorgelaten en helemaal niet meer naar de waarde (bijv. residential of industrial) gekeken. Ik ben het stukje voor de selectie op basis van de tags nu aan herschrijven. Het komt er uit te zien als hieronder.
Hierbij gaat een tag boven een key, dus allowKey(“area:highway”) in combinatie met disAllowTag(“area:highway”, “steps”) zou betekenen dat area:highway wordt uitgesneden met uitzondering van area:highway=steps. Bij tegenstrijdige tags krijgt disAllow voorrang. Bijvoorbeeld bij area=yes in combinatie met man_made=pier of elke willekeurige andere man_made.
tagSettings.allowTags("natural", Arrays.asList(
"wood",
"scrub",
"heath",
"moor",
"grassland",
"fell",
"bare_rock",
"scree",
"shingle",
"sand",
"mud",
"water",
"wetland",
"glacier",
"beach")
);
tagSettings.allowTags("landuse", Arrays.asList(
"allotments",
"basin",
"brownfield",
"farmland",
"forest",
"grass",
"greenfield",
"meadow",
"orchard",
"plant_nursery",
"village_green",
"vineyard")
);
tagSettings.allowTag("area", "yes");
tagSettings.allowKey("area:highway");
tagSettings.disAllowKeys(Arrays.asList(
"building",
"boundary",
"leisure",
"man_made",
"highway",
"railway",
"public_transport"
));