Skip to content

Commit

Permalink
make appends conditional
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel Sparing committed Jan 11, 2024
1 parent e95fd9e commit 5956cb2
Showing 1 changed file with 15 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -84,14 +84,26 @@ object MosaicPolygonJTS extends GeometryReader {
val newGeom = GeometryTypeEnum.fromString(geomSeq.head.getGeometryType) match {
case POINT =>
val extractedPoints = geomSeq.map(_.asInstanceOf[MosaicPointJTS])
val exteriorRing = extractedPoints.map(_.coord).toArray
val exteriorRing =
if (extractedPoints.head.coord == extractedPoints.last.coord) {
extractedPoints.map(_.coord).toArray
} else {
extractedPoints.map(_.coord).toArray ++ Array(extractedPoints.head.coord)
}
gf.createPolygon(exteriorRing)
case LINESTRING =>
val extractedLines = geomSeq.map(_.asInstanceOf[MosaicLineStringJTS])
val exteriorRing =
gf.createLinearRing(extractedLines.head.asSeq.map(_.coord).toArray)
if (extractedLines.head.asSeq.head.coord == extractedLines.head.asSeq.last.coord) {
gf.createLinearRing(extractedLines.head.asSeq.map(_.coord).toArray)
} else {
gf.createLinearRing(extractedLines.head.asSeq.map(_.coord).toArray ++ Array(extractedLines.head.asSeq.head.coord))

Check warning on line 100 in src/main/scala/com/databricks/labs/mosaic/core/geometry/polygon/MosaicPolygonJTS.scala

View check run for this annotation

Codecov / codecov/patch

src/main/scala/com/databricks/labs/mosaic/core/geometry/polygon/MosaicPolygonJTS.scala#L100

Added line #L100 was not covered by tests
}
val holes = extractedLines.tail
.map({ h: MosaicLineStringJTS => h.asSeq.map(_.coord).toArray})
.map({ h: MosaicLineStringJTS =>
if (h.asSeq.head.coord == h.asSeq.last.coord) h.asSeq.map(_.coord).toArray
else h.asSeq.map(_.coord).toArray ++ Array(h.asSeq.head.coord)

Check warning on line 105 in src/main/scala/com/databricks/labs/mosaic/core/geometry/polygon/MosaicPolygonJTS.scala

View check run for this annotation

Codecov / codecov/patch

src/main/scala/com/databricks/labs/mosaic/core/geometry/polygon/MosaicPolygonJTS.scala#L105

Added line #L105 was not covered by tests
})
.map(gf.createLinearRing)
.toArray
gf.createPolygon(exteriorRing, holes)
Expand Down

0 comments on commit 5956cb2

Please sign in to comment.