From 6b56eb75b37edaf6d78f98f4c8fcd8248dd1e91c Mon Sep 17 00:00:00 2001 From: Brandon Liu Date: Thu, 28 Dec 2023 17:30:02 +0800 Subject: [PATCH] Boundaries: make disputed boolean consistent [#190] --- .../protomaps/basemap/layers/Boundaries.java | 2 +- .../basemap/layers/BoundariesTest.java | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/tiles/src/main/java/com/protomaps/basemap/layers/Boundaries.java b/tiles/src/main/java/com/protomaps/basemap/layers/Boundaries.java index 22321fb7..a1f7ebbd 100644 --- a/tiles/src/main/java/com/protomaps/basemap/layers/Boundaries.java +++ b/tiles/src/main/java/com/protomaps/basemap/layers/Boundaries.java @@ -239,7 +239,7 @@ public void processFeature(SourceFeature sf, FeatureCollector features) { // Core Tilezen schema properties if (disputed.getAsInt() == 1) { - line.setAttr("disputed", 1); + line.setAttr("disputed", true); } } } diff --git a/tiles/src/test/java/com/protomaps/basemap/layers/BoundariesTest.java b/tiles/src/test/java/com/protomaps/basemap/layers/BoundariesTest.java index 8d1a155c..8e1eeb7d 100644 --- a/tiles/src/test/java/com/protomaps/basemap/layers/BoundariesTest.java +++ b/tiles/src/test/java/com/protomaps/basemap/layers/BoundariesTest.java @@ -34,4 +34,41 @@ void testUntaggedWay() { List.of(Map.of("pmap:kind", "country")), collector); } + + @Test + void testDisputedNe() { + var way = SimpleFeature.create(newLineString(0, 0, 1, 1), new HashMap<>(Map.of( + "featurecla", "Disputed (please verify)", "min_zoom", 0)), "ne", "ne_10m_admin_0_boundary_lines_land", 123); + + var collector = featureCollectorFactory.get(way); + profile.processFeature(way, collector); + + assertFeatures(12, + List.of(Map.of("disputed", true)), + collector); + } + + @Test + void testDisputedOsm() { + var infos = profile.preprocessOsmRelation( + new OsmElement.Relation(1, Map.of("type", "boundary", "boundary", "disputed", "admin_level", "2"), + List.of(new OsmElement.Relation.Member(OsmElement.Type.WAY, 123, "")))); + + var way = SimpleFeature.createFakeOsmFeature( + newLineString(0, 0, 1, 1), + new HashMap<>(Map.of( + )), + "osm", + null, + 123, + infos.stream().map(r -> new OsmReader.RelationMember<>("", r)).toList() + ); + + var collector = featureCollectorFactory.get(way); + profile.processFeature(way, collector); + + assertFeatures(12, + List.of(Map.of("disputed", true)), + collector); + } }