Comments (2)
https://play.golang.org/p/uuVRTFrp35m
package main
import (
"fmt"
"github.com/golang/geo/s2"
)
func main() {
cellID := s2.CellIDFromToken("c004")
fmt.Printf("'%v'.isValid() = %v", cellID, cellID.IsValid())
}
'Invalid: -3ffc000000000000'.isValid() = false
The cell token there is not a valid cell id, so it won't be able to generate proper results.
Was that CellID generated by an s2 library call?
from geo.
That CellID comes from this code:
package main
import (
"fmt"
"github.com/golang/geo/s2"
)
func main() {
for i := 0; i < 6; i++ {
c := s2.CellIDFromFace(i)
level := 6
c4start := c.ChildBeginAtLevel(level)
c4stop := c.ChildEndAtLevel(level)
fmt.Printf("face no.%d: %s(%v) -> %s(%v)\n", i,
c4start.ToToken(),
c4start.IsValid(),
c4stop.ToToken(),
c4stop.IsValid())
}
}
The output is:
face no.0: 0001(true) -> 2001(true)
face no.1: 2001(true) -> 4001(true)
face no.2: 4001(true) -> 6001(true)
face no.3: 6001(true) -> 8001(true)
face no.4: 8001(true) -> a001(true)
face no.5: a001(true) -> c001(false)
For faces from 0 to 4 both the first and last cell are valid, while for face 5 the last cell is not valid.
If you think, for e.g., looping from 0001 to 2001 using cell.Next()
the condition would be <= 2001
, while looping from a001 to c001 force me to change the condition to < c001
.
Maybe there is more clean way to loop over these cells, at the moment I'm going to validate each cell with IsValid()
(which I wasn't aware of, thank for the hint)
from geo.
Related Issues (20)
- Calculate S2 of polygon with OOM Error in golang
- AllNeighbors has a bug
- PolygonBuilder HOT 2
- Invalid input loops to PolygonFromOrientedLoops HOT 2
- Having trouble with RegionCoverer
- Loop.Area() unit HOT 1
- Find Closest Edge Performance with Many Polylines
- Porting bug
- Bug on Polygon Contains (linked to https://github.com/golang/geo/issues/77 ?) HOT 1
- High memory usage in getting s2 cell covering HOT 3
- Polygon.Intersects() method not working for some inputs? HOT 1
- golang-s2 momory leak HOT 1
- Q: How do you calculate the distance in km between 2 lat/lng points? HOT 7
- ppc64le - TestPredicatesRobustSignEqualities failure due to floating point precision differences HOT 1
- ppc64le - TestPointMeasuresPointArea failure due to floating point precision differences
- ppc64le - TestClosestEdgeQueryTrueDistanceLessThanChordAngleDistance failure due to floating point precision differences HOT 1
- Inverted params HOT 1
- Get a random point from a shape HOT 2
- Subdivide polygon
- Memory Leak when a loop contains point multiple time HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from geo.