From 96bec69dfe886f09ae45612c152ca71a242b81b5 Mon Sep 17 00:00:00 2001 From: Gang Wu Date: Wed, 3 Nov 2021 16:31:51 +0800 Subject: [PATCH] ST_Aggr_ConvexHull: fix convex hull of single geometry The convex hull of a single geometry should be itself. However, the result without this patch returns an empty multi polygon. --- .../main/java/com/esri/hadoop/hive/ST_Aggr_ConvexHull.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hive/src/main/java/com/esri/hadoop/hive/ST_Aggr_ConvexHull.java b/hive/src/main/java/com/esri/hadoop/hive/ST_Aggr_ConvexHull.java index 244ddea..40ac406 100644 --- a/hive/src/main/java/com/esri/hadoop/hive/ST_Aggr_ConvexHull.java +++ b/hive/src/main/java/com/esri/hadoop/hive/ST_Aggr_ConvexHull.java @@ -110,8 +110,8 @@ private void addGeometryToBuffer(Geometry geom) throws HiveException { * in the current buffer */ private void maybeAggregateBuffer(boolean force) throws HiveException { - - if (force || geometries.size() > MAX_BUFFER_SIZE){ + // Skip computing if there is none or single geometry buffered + if ((force && geometries.size() > 1) || geometries.size() > MAX_BUFFER_SIZE){ Geometry[] geomArray = new Geometry[geometries.size()]; geometries.toArray(geomArray); geometries.clear();