Slide 1

Slide 1 text

1 ! Geometriske Spøringer Hans Kristian Flaatten @Starefossen Bergen MongoDB & NoSQL User Group Tirsdag 15. desember 2015 Bergen og Hordaland Turlag

Slide 2

Slide 2 text

Geometriske indexer • Sfærisk (Spherical) • index: 2dsphere • data: GeoJSON • Flat (legacy) • index: 2d • data: coordinate pairs 2

Slide 3

Slide 3 text

2dsphere • Introdusert i MongoDB v2.4.0 • http://geojson.org/ • coordinate-axis order: longitude, latitude • coordinate reference system: WGS84 datum 3

Slide 4

Slide 4 text

GeoJSON • Point (v2.4.0) • LineString (v2.4.0) • Polygon (v2.4.0) • MultiPoint (v2.4.0) • MultiLineString (v2.6.0) • MultiPolygon (v2.6.0) • GeometryCollection (v2.6.0) 4

Slide 5

Slide 5 text

GeoJSON 5 { "type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0], [102.0, 2.0] ], "properties": { "name": "Simple Line" } }

Slide 6

Slide 6 text

Coordinate Reference System (CRS) • geoid • ellipsoid (spheroid) • Lokal: NAD1983, GDA94 • Global: WGS84, GRS80, International 1924 6

Slide 7

Slide 7 text

7 geoid Ellipsoide globalt best passende til geoiden Ellipsoide regionalt tilpasset geoiden Best mulig passform

Slide 8

Slide 8 text

topografi geosenter b a 8 H h

Slide 9

Slide 9 text

Geometriske Spøringer 9  $geoWithin  $geoIntersects <*>  $near

Slide 10

Slide 10 text

2dsphere index 10 db.collection.createIndex({ : "2dsphere" });

Slide 11

Slide 11 text

$geoWithin 11 $geoWithin: { $geometry: { type: <"Polygon" or "MultiPolygon">, coordinates: [ ] } }

Slide 12

Slide 12 text

$geoWithin (improved) 12 $geoWithin: { $box: [ [ ], [ ] ] }

Slide 13

Slide 13 text

$geoIntersects 13 $geoIntersects: { $geometry: { type: <"GeoJSON object type">, coordinates: [ ] } }

Slide 14

Slide 14 text

$near 14 $near: { $geometry: { type: "Point", coordinates: coordinates: [ , ] }, $maxDistance: , $minDistance: }