-
Notifications
You must be signed in to change notification settings - Fork 188
Open
Description
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)
Metadata
Metadata
Assignees
Labels
No labels