This is an automated email from the ASF dual-hosted git repository. jiayu pushed a commit to branch SEDONA-589 in repository https://gitbox.apache.org/repos/asf/sedona.git
commit 83f12f75edd6c0bd182ffba1bacfb6deaee18d78 Author: Jia Yu <[email protected]> AuthorDate: Fri Jun 7 00:55:15 2024 -0700 Revert "fix: bug of ST_LongestLine (#173)" This reverts commit 717a242cf7d584a410614845a90185e451f16c0e. --- .../java/org/apache/sedona/common/Functions.java | 18 ----------- .../org/apache/sedona/common/FunctionsTest.java | 37 ---------------------- 2 files changed, 55 deletions(-) diff --git a/common/src/main/java/org/apache/sedona/common/Functions.java b/common/src/main/java/org/apache/sedona/common/Functions.java index 7787013cd..ac88ce04f 100644 --- a/common/src/main/java/org/apache/sedona/common/Functions.java +++ b/common/src/main/java/org/apache/sedona/common/Functions.java @@ -1062,24 +1062,6 @@ public class Functions { return isExteriorRingCCW && isInteriorRingCCW; } - public static Geometry longestLine(Geometry geom1, Geometry geom2) { - double maxLength = - Double.MAX_VALUE; - Coordinate longestStart = null; - Coordinate longestEnd = null; - - for (Coordinate coord1: geom1.getCoordinates()) { - for (Coordinate coord2: geom2.getCoordinates()) { - double length = coord1.distance(coord2); - if (length > maxLength) { - maxLength = length; - longestStart = coord1; - longestEnd = coord2; - } - } - } - return geom1.getFactory().createLineString(new Coordinate[] {longestStart, longestEnd}); - } - public static Geometry difference(Geometry leftGeometry, Geometry rightGeometry) { boolean isIntersects = leftGeometry.intersects(rightGeometry); if (!isIntersects) { diff --git a/common/src/test/java/org/apache/sedona/common/FunctionsTest.java b/common/src/test/java/org/apache/sedona/common/FunctionsTest.java index e50e34192..017f65e64 100644 --- a/common/src/test/java/org/apache/sedona/common/FunctionsTest.java +++ b/common/src/test/java/org/apache/sedona/common/FunctionsTest.java @@ -1012,43 +1012,6 @@ public class FunctionsTest extends TestBase { assertEquals("Median failed to converge within 1.0E-06 after 5 iterations.", e.getMessage()); } - @Test - public void longestLine() throws ParseException { - Geometry geom1 = Constructors.geomFromWKT("POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))", 0); - Geometry geom2 = Functions.buffer(Constructors.geomFromWKT("POINT (10.123456 -20.654321)", 0), 30); - String actual = Functions.asWKT(Functions.longestLine(geom1, geom2)); - String expected = "LINESTRING (40 40, -1.3570469709526929 -48.37070697533861)"; - assertEquals(expected, actual); - - geom1 = Constructors.geomFromWKT("POLYGON ((190 150, 20 10, 160 70, 190 150))", 0); - geom2 = Constructors.geomFromWKT("POINT(80 160)", 0); - actual = Functions.asWKT(Functions.reducePrecision(Functions.longestLine(geom1, Functions.buffer(geom2, 30)), 8)); - expected = "LINESTRING (20 10, 91.48050297 187.71638598)"; - assertEquals(expected, actual); - - geom1 = Constructors.geomFromWKT("POINT (160 40)", 0); - geom2 = Constructors.geomFromWKT("LINESTRING (10 30, 50 50, 30 110, 70 90, 180 140, 130 190)", 0); - actual = Functions.asWKT(Functions.longestLine(geom1, geom2)); - expected = "LINESTRING (160 40, 130 190)"; - assertEquals(expected, actual); - - geom1 = Constructors.geomFromWKT("POLYGON ((40 180, 110 160, 180 180, 180 120, 140 90, 160 40, 80 10, 70 40, 20 50, 40 180),(60 140, 99 77.5, 90 140, 60 140))", 0); - actual = Functions.asWKT(Functions.normalize(Functions.longestLine(geom1, geom1))); - expected = "LINESTRING (20 50, 180 180)"; - assertEquals(expected, actual); - - geom1 = Constructors.geomFromWKT("POINT Z (10 20 5)", 0); - geom2 = Constructors.geomFromWKT("POLYGON Z ((30 40 10, 40 50 15, 50 60 20, 30 40 10))", 0); - actual = Functions.asWKT(Functions.longestLine(geom1, geom2)); - expected = "LINESTRING Z(10 20 5, 50 60 20)"; - assertEquals(expected, actual); - - geom1 = Constructors.geomFromWKT("POINT (0 0)", 0); - actual = Functions.asWKT(Functions.longestLine(geom1, geom1)); - expected = "LINESTRING (0 0, 0 0)"; - assertEquals(expected, actual); - } - @Test public void makepolygonWithSRID() { Geometry lineString1 = GEOMETRY_FACTORY.createLineString(coordArray(0, 0, 1, 1, 1, 0, 0, 0));
