From e2e8b1adfacd03ad128d35d57610b960fac0aa2c Mon Sep 17 00:00:00 2001 From: Mike Barry Date: Thu, 14 Dec 2023 07:07:27 -0500 Subject: [PATCH] tweak --- .../main/java/com/onthegomap/planetiler/VectorTile.java | 7 ++++++- .../com/onthegomap/planetiler/util/LayerAttrStats.java | 5 +++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java index 06d5c3d0..1e46cf5e 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java @@ -81,7 +81,7 @@ public class VectorTile { private static final int EXTENT = 4096; private static final double SIZE = 256d; private final Map layers = new LinkedHashMap<>(); - private LayerAttrStats.Updater.ForZoom layerStatsTracker = LayerAttrStats.Updater.ForZoom.NO_OP; + private LayerAttrStats.Updater.ForZoom layerStatsTracker = LayerAttrStats.Updater.ForZoom.NOOP; private static int[] getCommands(Geometry input, int scale) { var encoder = new CommandEncoder(scale); @@ -599,6 +599,11 @@ public class VectorTile { return layers.values().stream().allMatch(v -> v.encodedFeatures.isEmpty()) || containsOnlyFillsOrEdges(); } + /** + * Call back to {@code layerStats} as vector tile features are being encoded in + * {@link #addLayerFeatures(String, List)} to track attribute types present on features in each layer, for example to + * emit in tilejson metadata stats. + */ public void trackLayerStats(LayerAttrStats.Updater.ForZoom layerStats) { this.layerStatsTracker = layerStats; } diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/LayerAttrStats.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/LayerAttrStats.java index 6ba65bf4..11b10340 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/LayerAttrStats.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/LayerAttrStats.java @@ -61,6 +61,7 @@ public class LayerAttrStats { .toList(); } + /** Shortcut for tests */ void accept(String layer, int zoom, String key, Object value) { handlerForThread().forZoom(zoom).forLayer(layer).accept(key, value); } @@ -160,7 +161,7 @@ public class LayerAttrStats { interface ForZoom { - ForZoom NO_OP = layer -> (key, value) -> { + ForZoom NOOP = layer -> (key, value) -> { }; ForLayer forLayer(String layer); @@ -171,7 +172,7 @@ public class LayerAttrStats { } } - public static class StatsForLayer { + private static class StatsForLayer { private final String layer; private final Map fields = new HashMap<>();