diff options
Diffstat (limited to 'jstests/core/geo_s2multi.js')
-rw-r--r-- | jstests/core/geo_s2multi.js | 70 |
1 files changed, 51 insertions, 19 deletions
diff --git a/jstests/core/geo_s2multi.js b/jstests/core/geo_s2multi.js index 8d86f8ad08c..2cd6a3d73d7 100644 --- a/jstests/core/geo_s2multi.js +++ b/jstests/core/geo_s2multi.js @@ -4,38 +4,70 @@ t.drop(); t.ensureIndex({geo: "2dsphere"}); // Let's try the examples in the GeoJSON spec. -multiPointA = { "type": "MultiPoint", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] }; +multiPointA = { + "type": "MultiPoint", + "coordinates": [[100.0, 0.0], [101.0, 1.0]] +}; assert.writeOK(t.insert({geo: multiPointA})); -multiLineStringA = { "type": "MultiLineString", "coordinates": [ [ [100.0, 0.0], [101.0, 1.0] ], - [ [102.0, 2.0], [103.0, 3.0] ]]}; +multiLineStringA = { + "type": "MultiLineString", + "coordinates": [[[100.0, 0.0], [101.0, 1.0]], [[102.0, 2.0], [103.0, 3.0]]] +}; assert.writeOK(t.insert({geo: multiLineStringA})); -multiPolygonA = { "type": "MultiPolygon", "coordinates": [ - [[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]], - [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]], - [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]]}; +multiPolygonA = { + "type": "MultiPolygon", + "coordinates": [ + [[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]], + [ + [[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]], + [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]] + ] + ] +}; assert.writeOK(t.insert({geo: multiPolygonA})); -assert.eq(3, t.find({geo: {$geoIntersects: {$geometry: - {"type": "Point", "coordinates": [100,0]}}}}).itcount()); -assert.eq(3, t.find({geo: {$geoIntersects: {$geometry: - {"type": "Point", "coordinates": [101.0,1.0]}}}}).itcount()); +assert.eq(3, + t.find({geo: {$geoIntersects: {$geometry: {"type": "Point", "coordinates": [100, 0]}}}}) + .itcount()); +assert.eq(3, + t.find({ + geo: {$geoIntersects: {$geometry: {"type": "Point", "coordinates": [101.0, 1.0]}}} + }).itcount()); // Inside the hole in multiPolygonA -assert.eq(0, t.find({geo: {$geoIntersects: {$geometry: - {"type": "Point", "coordinates": [100.21,0.21]}}}}).itcount()); +assert.eq( + 0, + t.find({geo: {$geoIntersects: {$geometry: {"type": "Point", "coordinates": [100.21, 0.21]}}}}) + .itcount()); // One point inside the hole, one out. -assert.eq(3, t.find({geo: {$geoIntersects: {$geometry: - {"type": "MultiPoint", "coordinates": [[100,0],[100.21,0.21]]}}}}).itcount()); -assert.eq(3, t.find({geo: {$geoIntersects: {$geometry: - {"type": "MultiPoint", "coordinates": [[100,0],[100.21,0.21],[101,1]]}}}}).itcount()); +assert.eq( + 3, + t.find({ + geo: { + $geoIntersects: + {$geometry: {"type": "MultiPoint", "coordinates": [[100, 0], [100.21, 0.21]]}} + } + }).itcount()); +assert.eq( + 3, + t.find({ + geo: { + $geoIntersects: { + $geometry: + {"type": "MultiPoint", "coordinates": [[100, 0], [100.21, 0.21], [101, 1]]} + } + } + }).itcount()); // Polygon contains itself and the multipoint. assert.eq(2, t.find({geo: {$geoWithin: {$geometry: multiPolygonA}}}).itcount()); -partialPolygonA = { "type": "Polygon", "coordinates": - [ [[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]] ] }; +partialPolygonA = { + "type": "Polygon", + "coordinates": [[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]] +}; assert.writeOK(t.insert({geo: partialPolygonA})); // Polygon contains itself, the partial poly, and the multipoint assert.eq(3, t.find({geo: {$geoWithin: {$geometry: multiPolygonA}}}).itcount()); |