File: geo_s2edgecases.js

package info (click to toggle)
mongodb 1%3A2.4.10-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 82,464 kB
  • sloc: cpp: 740,225; ansic: 152,098; sh: 13,820; python: 11,864; makefile: 1,012; perl: 922; pascal: 617; java: 452; lisp: 222; asm: 174
file content (40 lines) | stat: -rwxr-xr-x 1,523 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
t = db.geo_s2edgecases
t.drop()

roundworldpoint = { "type" : "Point", "coordinates": [ 180, 0 ] }

// Opposite the equator
roundworld = { "type" : "Polygon",
             "coordinates" : [ [ [179,1], [-179,1], [-179,-1], [179,-1], [179,1]]]}
t.insert({geo : roundworld})

roundworld2 = { "type" : "Polygon",
             "coordinates" : [ [ [179,1], [179,-1], [-179,-1], [-179,1], [179,1]]]}
t.insert({geo : roundworld2})

// North pole
santapoint = { "type" : "Point", "coordinates": [ 180, 90 ] }
santa = { "type" : "Polygon",
             "coordinates" : [ [ [179,89], [179,90], [-179,90], [-179,89], [179,89]]]}
t.insert({geo : santa})
santa2 = { "type" : "Polygon",
             "coordinates" : [ [ [179,89], [-179,89], [-179,90], [179,90], [179,89]]]}
t.insert({geo : santa2})

// South pole
penguinpoint = { "type" : "Point", "coordinates": [ 0, -90 ] }
penguin1 = { "type" : "Polygon",
             "coordinates" : [ [ [0,-89], [0,-90], [179,-90], [179,-89], [0,-89]]]}
t.insert({geo : penguin1})
penguin2 = { "type" : "Polygon",
             "coordinates" : [ [ [0,-89], [179,-89], [179,-90], [0,-90], [0,-89]]]}
t.insert({geo : penguin2})

t.ensureIndex( { geo : "2dsphere", nonGeo: 1 } )

res = t.find({ "geo" : { "$geoIntersects" : { "$geometry" : roundworldpoint} } });
assert.eq(res.count(), 2);
res = t.find({ "geo" : { "$geoIntersects" : { "$geometry" : santapoint} } });
assert.eq(res.count(), 2);
res = t.find({ "geo" : { "$geoIntersects" : { "$geometry" : penguinpoint} } });
assert.eq(res.count(), 2);