diff --git a/spark/common/src/main/java/org/apache/sedona/core/formatMapper/shapefileParser/parseUtils/shp/PolygonParser.java b/spark/common/src/main/java/org/apache/sedona/core/formatMapper/shapefileParser/parseUtils/shp/PolygonParser.java index f1dcd7712c..5e26a37c69 100644 --- a/spark/common/src/main/java/org/apache/sedona/core/formatMapper/shapefileParser/parseUtils/shp/PolygonParser.java +++ b/spark/common/src/main/java/org/apache/sedona/core/formatMapper/shapefileParser/parseUtils/shp/PolygonParser.java @@ -18,10 +18,9 @@ */ package org.apache.sedona.core.formatMapper.shapefileParser.parseUtils.shp; -import java.io.IOException; import java.util.ArrayList; import java.util.List; -import org.geotools.geometry.jts.coordinatesequence.CoordinateSequences; +import org.locationtech.jts.algorithm.Orientation; import org.locationtech.jts.geom.CoordinateSequence; import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.GeometryFactory; @@ -44,7 +43,6 @@ public PolygonParser(GeometryFactory geometryFactory) { * * @param reader the reader * @return the geometry - * @throws IOException Signals that an I/O exception has occurred. */ @Override public Geometry parseShape(ShapeReader reader) { @@ -72,16 +70,13 @@ public Geometry parseShape(ShapeReader reader) { LinearRing ring = geometryFactory.createLinearRing(csRing); if (shell == null) { shell = ring; - shellsCCW = CoordinateSequences.isCCW(csRing); - } else if (CoordinateSequences.isCCW(csRing) != shellsCCW) { + shellsCCW = Orientation.isCCW(csRing); + } else if (Orientation.isCCW(csRing) != shellsCCW) { holes.add(ring); } else { - if (shell != null) { - Polygon polygon = - geometryFactory.createPolygon(shell, GeometryFactory.toLinearRingArray(holes)); - polygons.add(polygon); - } - + Polygon polygon = + geometryFactory.createPolygon(shell, GeometryFactory.toLinearRingArray(holes)); + polygons.add(polygon); shell = ring; holes.clear(); } diff --git a/spark/spark-3.0/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala b/spark/spark-3.0/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala index fe63303f25..d1585d65cc 100644 --- a/spark/spark-3.0/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala +++ b/spark/spark-3.0/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala @@ -172,7 +172,7 @@ class ShapefilePartitionReader( try { FunctionsGeoTools.wktCRSToSRID(wkt) } catch { - case e: Exception => + case e: Throwable => val prjPath = partitionedFilesMap.get("prj").orNull logger.warn(s"Failed to parse SRID from .prj file $prjPath", e) 0 diff --git a/spark/spark-3.1/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala b/spark/spark-3.1/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala index fe63303f25..d1585d65cc 100644 --- a/spark/spark-3.1/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala +++ b/spark/spark-3.1/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala @@ -172,7 +172,7 @@ class ShapefilePartitionReader( try { FunctionsGeoTools.wktCRSToSRID(wkt) } catch { - case e: Exception => + case e: Throwable => val prjPath = partitionedFilesMap.get("prj").orNull logger.warn(s"Failed to parse SRID from .prj file $prjPath", e) 0 diff --git a/spark/spark-3.2/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala b/spark/spark-3.2/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala index fe63303f25..d1585d65cc 100644 --- a/spark/spark-3.2/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala +++ b/spark/spark-3.2/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala @@ -172,7 +172,7 @@ class ShapefilePartitionReader( try { FunctionsGeoTools.wktCRSToSRID(wkt) } catch { - case e: Exception => + case e: Throwable => val prjPath = partitionedFilesMap.get("prj").orNull logger.warn(s"Failed to parse SRID from .prj file $prjPath", e) 0 diff --git a/spark/spark-3.3/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala b/spark/spark-3.3/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala index fe63303f25..d1585d65cc 100644 --- a/spark/spark-3.3/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala +++ b/spark/spark-3.3/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala @@ -172,7 +172,7 @@ class ShapefilePartitionReader( try { FunctionsGeoTools.wktCRSToSRID(wkt) } catch { - case e: Exception => + case e: Throwable => val prjPath = partitionedFilesMap.get("prj").orNull logger.warn(s"Failed to parse SRID from .prj file $prjPath", e) 0 diff --git a/spark/spark-3.4/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala b/spark/spark-3.4/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala index f962659bbf..f2a4a0739f 100644 --- a/spark/spark-3.4/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala +++ b/spark/spark-3.4/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala @@ -172,7 +172,7 @@ class ShapefilePartitionReader( try { FunctionsGeoTools.wktCRSToSRID(wkt) } catch { - case e: Exception => + case e: Throwable => val prjPath = partitionedFilesMap.get("prj").orNull logger.warn(s"Failed to parse SRID from .prj file $prjPath", e) 0 diff --git a/spark/spark-3.5/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala b/spark/spark-3.5/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala index f962659bbf..f2a4a0739f 100644 --- a/spark/spark-3.5/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala +++ b/spark/spark-3.5/src/main/scala/org/apache/sedona/sql/datasources/shapefile/ShapefilePartitionReader.scala @@ -172,7 +172,7 @@ class ShapefilePartitionReader( try { FunctionsGeoTools.wktCRSToSRID(wkt) } catch { - case e: Exception => + case e: Throwable => val prjPath = partitionedFilesMap.get("prj").orNull logger.warn(s"Failed to parse SRID from .prj file $prjPath", e) 0