[
https://issues.apache.org/jira/browse/SEDONA-96?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17514924#comment-17514924
]
Jia Yu commented on SEDONA-96:
------------------------------
I am fine with this idea of using JTS GeometryFixer. Anyone want to make a PR?
> ST_MakeValid returning multiple geometries for polygons with holes
> ------------------------------------------------------------------
>
> Key: SEDONA-96
> URL: https://issues.apache.org/jira/browse/SEDONA-96
> Project: Apache Sedona
> Issue Type: Bug
> Reporter: Russell W
> Priority: Major
> Attachments: Screen Shot 2022-03-29 at 2.17.43 PM.png, Screen Shot
> 2022-03-29 at 2.19.37 PM.png
>
>
> When pass a polygon with holes, ST_MakeValid is returning new rows for each
> hole. This can lead to significant incorrectness when using ST_MakeValid
> prior to a spatial join.
> Example:
> {code:java}
> polygon = spark.createDataFrame([['{"type": "Polygon", "coordinates": [[[3,
> 3], [3, -3], [-3, -3], [-3, 3], [3, 3]], [[1, 1], [1, -1], [-1, -1], [-1, 1],
> [1, 1]]]}']], ['geometry'])
> polygon = polygon.withColumn('geometry',
> F.expr('ST_MakeValid(ST_GeomFromGeoJSON(geometry), false)'))
> polygon = polygon.withColumn('geometry', F.expr('ST_AsGeoJSON(geometry)'))
> polygon
> geometry
> --------------------------------------------------------------------------------------------------------------------------------------------------
> {"type":"Polygon","coordinates":[[[3.0,3.0],[3.0,-3.0],[-3.0,-3.0],[-3.0,3.0],[3.0,3.0]],[[1.0,1.0],[-1.0,1.0],[-1.0,-1.0],[1.0,-1.0],[1.0,1.0]]]}
> {"type":"Polygon","coordinates":[[[-1.0,1.0],[1.0,1.0],[1.0,-1.0],[-1.0,-1.0],[-1.0,1.0]]]}{code}
> Input:
> !Screen Shot 2022-03-29 at 2.17.43 PM.png|width=458,height=379!
> Output:
> !Screen Shot 2022-03-29 at 2.19.37 PM.png|width=457,height=378!
--
This message was sent by Atlassian Jira
(v8.20.1#820001)