From 8d80ba3398e2bbdf168e102913e8f0efd7a0c269 Mon Sep 17 00:00:00 2001 From: Mike Barry Date: Tue, 26 Sep 2023 08:12:22 -0400 Subject: [PATCH] tweak --- .../java/com/onthegomap/planetiler/FeatureMerge.java | 12 ++++++------ .../java/com/onthegomap/planetiler/VectorTile.java | 8 +++++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/FeatureMerge.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/FeatureMerge.java index 6b3bff45..202178d8 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/FeatureMerge.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/FeatureMerge.java @@ -50,6 +50,9 @@ public class FeatureMerge { private static final Logger LOGGER = LoggerFactory.getLogger(FeatureMerge.class); private static final BufferParameters bufferOps = new BufferParameters(); + // this is slightly faster than Comparator.comparingInt + private static final Comparator> BY_HILBERT_INDEX = + (o1, o2) -> Integer.compare(o1.hilbert, o2.hilbert); static { bufferOps.setJoinStyle(BufferParameters.JOIN_MITRE); @@ -114,11 +117,6 @@ public class FeatureMerge { return mergeGeometries(features, GeometryType.LINE); } - private static final Comparator> BY_HILBERT_INDEX = - (o1, o2) -> Integer.compare(o1.hilbert(), o2.hilbert()); - - private record WithIndex (T feature, int hilbert) {} - private static List mergeGeometries( List features, GeometryType geometryType @@ -188,7 +186,7 @@ public class FeatureMerge { if (simplified instanceof LineString simpleLineString) { line = simpleLineString; } else { - LOGGER.warn("line string merge simplify emitted " + simplified.getGeometryType()); + LOGGER.warn("line string merge simplify emitted {}", simplified.getGeometryType()); } } if (buffer >= 0) { @@ -573,4 +571,6 @@ public class FeatureMerge { } return result; } + + private record WithIndex (T feature, int hilbert) {} } 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 a95cea2f..811b5084 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java @@ -425,7 +425,7 @@ public class VectorTile { * Returns the hilbert index of the zig-zag-encoded first point of {@code geometry}. *

* This can be useful for sorting geometries to minimize encoded vector tile geometry command size since smaller - * values take fewer bytes using protobuf varint encoding. + * offsets take fewer bytes using protobuf varint encoding. */ public static int hilbertIndex(Geometry geometry) { Coordinate coord = geometry.getCoordinate(); @@ -961,6 +961,12 @@ public class VectorTile { } } + /** + * Returns the hilbert index of the zig-zag-encoded first point of this feature. + *

+ * This can be useful for sorting geometries to minimize encoded vector tile geometry command size since smaller + * offsets take fewer bytes using protobuf varint encoding. + */ public int hilbertIndex() { if (commands.length < 3) { return 0;