Open nico-bock opened 1 year ago
geometry.Poly{}.Valid() check only if the Exterior and the holes are valid Series, not if they are a valid polygon.
Therefore Polygons with missing Points, intersecting edges etc. are not detected.
Is this intended or just not necessary till now?
package main import ( "github.com/tidwall/geojson" "github.com/tidwall/geojson/geometry" ) func main() { polygon := geometry.NewPoly([]geometry.Point{ { 8.88242492198438, 47.85972404073712, }, { 6.003023836249525, 47.467582223811604, }, { 10.561998072355692, 45.71873204889732, }, { 6.738413586888328, 48.35187757503576, }, { 8.88242492198438, 47.85972404073712, }, }, nil, nil) print(polygon.Valid()) //Expected to be false geojsonPolygon := geojson.NewPolygon(polygon) print(geojsonPolygon.Valid()) //Expected to be false geojsonPolygonFeature := geojson.NewFeature(geojsonPolygon, "") print(geojsonPolygonFeature.Valid()) //Expected to be False geojsonPolygonFeatureJson := geojsonPolygonFeature.JSON() print(geojsonPolygonFeatureJson) }
A more robust Valid operation would be nice, but it's not something I've gotten around to.
If you want to, I could make a PR for this.
Description
geometry.Poly{}.Valid() check only if the Exterior and the holes are valid Series, not if they are a valid polygon.
Therefore Polygons with missing Points, intersecting edges etc. are not detected.
Is this intended or just not necessary till now?
Exmaple: