Closed gzqlovemxq closed 11 months ago
I use golang to calaulate a s2 cells of a polygon [[104.3694198,30.2951281],[104.3633136,30.2962483],[104.365088,30.2959228],[104.3694198,30.2951281]]
And I found it usually happened when the area of polygon is very small.
Is there any bug for S2 Golang with handling this scenario?
s2Points := make([]s2.Point, 0, len(coords)) for _, points := range coords { for i := 0; i < len(points)-1; i++ { s2Points = append(s2Points, s2.PointFromLatLng(s2.LatLngFromDegrees(points[i][1], points[i][0]))) } } s2Loop := s2.LoopFromPoints(s2Points) if err := s2Loop.Validate(); err != nil { return nil, err } if ok, err := isCCWOrder(coords); err != nil { return nil, err } else if !ok { s2Loop.Invert() } rc := &s2.RegionCoverer{MinLevel: 14, MaxLevel: 14, MaxCells: 1e7} cells := rc.Covering(s2Loop)
The Go fork of S2 is maintained at https://github.com/golang/geo, I'd recommend opening this issue over there for better visibility.
Got it, have moved with this issue and Thank for your advising.
I use golang to calaulate a s2 cells of a polygon [[104.3694198,30.2951281],[104.3633136,30.2962483],[104.365088,30.2959228],[104.3694198,30.2951281]]
And I found it usually happened when the area of polygon is very small.
Is there any bug for S2 Golang with handling this scenario?