com presentations: Added geo talks for php bnl and sunshine php: geo-phpbnl17.xml geo-sunshine17.xml

[email protected] (Derick Rethans) Tue, 24 Jan 2017 11:58:34 +0000
Newsgroups php.pres
Message-ID <[email protected]>
Commit:    010171d99223a13df3994940147b7c171e0de489
Author:    Derick Rethans <[email protected]>         Tue, 24 Jan 2017 11:58:34 +0000
Parents:   3bb510a87eee956f17b944983d03b91c05ef3681
Branches:  master

Link:       http://git.php.net/?p=presentations.git;a=commitdiff;h=010171d99223a13df3994940147b7c171e0de489

Log:
Added geo talks for php bnl and sunshine php

Changed paths:
  A  geo-phpbnl17.xml
  A  geo-sunshine17.xml
diff_010171d99223a13df3994940147b7c171e0de489.txt (text/plain, 11.1 KB)
diff --git a/geo-phpbnl17.xml b/geo-phpbnl17.xml
new file mode 100644
index 0000000..875a62c
--- /dev/null
+++ b/geo-phpbnl17.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="10gen-strict.css">
+<topic>MongoDB</topic>
+<title>Locate All The Things</title>
+<event>PHP Benelux 2017</event>
+<location>Edegem, Belgium</location>
+<lat>51.15056</lat><lon>4.43284</lon>
+<date>January 28th, 2017</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<joindin>http://joind.in/19711</joindin>
+
+<slide>slides/mongodb/title.xml</slide>
+
+<slide>slides/mongodb/closed-pub.xml</slide>
+<!-- A few words about our dataset -->
+
+<slide>slides/mongodb/few-words-about-osm.xml</slide>
+
+<slide>slides/map/osm-data.xml</slide>
+
+<slide>slides/mongodb/osm-import-tags-section.xml</slide>
+
+<slide>slides/map/osm-tags1.xml</slide>
+<slide>slides/map/osm-tags2.xml</slide>
+<slide>slides/map/osm-tags3.xml</slide>
+
+
+<slide>slides/mongodb/osm-to-mongo-data.xml</slide>
+<slide>slides/mongodb/osm-to-mongo-data2.xml</slide>
+<slide>slides/mongodb/osm-to-mongo-data3.xml</slide>
+<slide>slides/mongodb/osm-to-mongo-data4.xml</slide>
+
+<slide>slides/mongodb/osm-import-4times-section.xml</slide>
+<slide>slides/mongodb/osm-schema1.xml</slide>
+<slide>slides/mongodb/osm-schema2.xml</slide>
+<slide>slides/mongodb/osm-schema4.xml</slide>
+<slide>slides/mongodb/osm-schema3.xml</slide>
+<slide>slides/mongodb/osm-schema-summary.xml</slide>
+
+<!-- DATA STORAGE -->
+<!--
+	No more [ lon, lat ], but geojson instead
+
+SAY WHERE ELSE GeoJson is used
+-->
+<slide>slides/mongodb/osm-import-location-section.xml</slide>
+<slide>slides/mongodb/geojson.xml</slide>
+
+<!--
+	POINT:
+    show an image, and the GeoJson under 
+-->
+<slide>slides/mongodb/geojson-point.xml</slide>
+<!--
+	LINESTRING:
+    show an image, and the GeoJson under 
+-->
+<slide>slides/mongodb/geojson-linestring.xml</slide>
+<!--
+	POLYGON:
+    show an image, and the GeoJson under 
+-->
+<slide>slides/mongodb/geojson-polygon.xml</slide>
+
+<!--
+	CELLS,
+    We divide the surface of the earth into cells
+        A library called S2 from Google does the hard work
+    Cells have a level which define the size of the cell.
+    S2 provides 31 levels
+    The higher the level, the smaller the cell, and therefore the more needed to cover the earth
+    By default, we use all levels between 500m on a side and 100km on a side
+-->
+<slide>slides/mongodb/cells.xml</slide>
+<!--
+	Show grid of (part of) London:
+	- Point, Westminster palace
+	- Line, Oxford Street
+    - Polygon, Hyde Park
+-->
+<slide>slides/mongodb/cells-level10-example-london-1.xml</slide>
+<slide>slides/mongodb/cells-level10-example-london-2.xml</slide>
+<slide>slides/mongodb/cells-level10-example-london-3.xml</slide>
+
+<slide>slides/map/osm-xapi.xml</slide>
+<slide>slides/map/osm-data.xml</slide>
+<slide>slides/map/import-script-manchester.xml</slide>
+
+
+<!-- operators
+    $near
+        find stuff near a point
+        index required
+    $geoWithin
+        find stuff within a polygon/circle
+        index NOT required
+    $geoIntersects
+        find stuff that intersects with other stuff
+        index NOT required
+
+-->
+<slide>slides/mongodb/geo-in-2.4.xml</slide>
+
+<!-- near
+	- Example with road and park
+	- slide with index/no index, and comparsion with 2.2?
+-->
+<!-- geoWithin
+	- Example with road and park
+	- slide with index/no index, and comparsion with 2.2?
+-->
+<!-- geoIntersects
+	- Example with road and park
+	- slide with index/no index, and comparsion with 2.2?
+-->
+<slide>slides/mongodb/geo-near.xml</slide>
+
+<!--
+	NEAR
+
+    Starts from a point
+    Looks at concentric donuts from that point
+    Want to look at documents within the donut
+    If distance from query point to document is within the donut, output
+    Adapts size of the donut as needed
+-->
+<!--
+	GeoWithin/GeoIntersecs
+
+    Generate a covering for geometry in query
+    Look at all points in all overlapping cells
+        Cells may be larger or smaller than our covering
+        Must look at cells that contain our covering
+        Must look at cells that we contain
+    See if documents are within or intersect our query geometry
+
+	Show examples of:
+	- within: The Palace of Westminster (point) in "City of Westminster" (polygon)
+	- intersect: thames (line) crossing London (polygon)
+-->
+<slide>slides/mongodb/geo-within.xml</slide>
+<slide>slides/mongodb/geo-within-2.xml</slide>
+
+<slide>slides/mongodb/geo-intersects.xml</slide>
+
+
+<!--
+Without index:
+    $near
+        Look at every point
+        Sort by distance
+        Very slow, so requires an index.
+    $geoWithin
+        Look at every document
+        Is it within the query polygon?
+        Order is arbitrary
+    $geoIntersects
+        Look at every document
+        Does it intersect with the query geometry?
+        Order is arbitrary
+-->
+<!-- AGGREGATION:
+
+	- show tube stations per borough
+	- show pubs by borough
+
+http://docs.mongodb.org/manual/reference/aggregation/#stage._S_geoNear
+
+- distance is important
+- $geoNear in aggregation can't deal with more than one 2dsphere index
+- spherical option is *required* when using a 2dsphere index
+-->
+<slide>slides/mongodb/geo-aggregation.xml</slide>
+<slide>slides/mongodb/geo-aggregation2.xml</slide>
+
+<slide>slides/mongodb/osm-import-leaflet-section.xml</slide>
+
+<slide>slides/map/leaflet.xml</slide>
+<slide>slides/map/leaflet-ajax.xml</slide>
+<slide>slides/map/leaflet-json-return.xml</slide>
+
+<slide>slides/mongodb/resources.xml</slide>
+
+</presentation>
diff --git a/geo-sunshine17.xml b/geo-sunshine17.xml
new file mode 100644
index 0000000..ff07891
--- /dev/null
+++ b/geo-sunshine17.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="10gen-strict.css">
+<topic>MongoDB</topic>
+<title>Locate All The Things</title>
+<event>Sunshine PHP</event>
+<location>Miami, FL, US</location>
+<lat>25.80660</lat><lon>-80.26157</lon>
+<date>January 28th, 2017</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<joindin>http://joind.in/talk/9719b</joindin>
+
+<slide>slides/mongodb/title.xml</slide>
+
+<slide>slides/mongodb/closed-pub.xml</slide>
+<!-- A few words about our dataset -->
+
+<slide>slides/mongodb/few-words-about-osm.xml</slide>
+
+<slide>slides/map/osm-data.xml</slide>
+
+<slide>slides/mongodb/osm-import-tags-section.xml</slide>
+
+<slide>slides/map/osm-tags1.xml</slide>
+<slide>slides/map/osm-tags2.xml</slide>
+<slide>slides/map/osm-tags3.xml</slide>
+
+
+<slide>slides/mongodb/osm-to-mongo-data.xml</slide>
+<slide>slides/mongodb/osm-to-mongo-data2.xml</slide>
+<slide>slides/mongodb/osm-to-mongo-data3.xml</slide>
+<slide>slides/mongodb/osm-to-mongo-data4.xml</slide>
+
+<slide>slides/mongodb/osm-import-4times-section.xml</slide>
+<slide>slides/mongodb/osm-schema1.xml</slide>
+<slide>slides/mongodb/osm-schema2.xml</slide>
+<slide>slides/mongodb/osm-schema4.xml</slide>
+<slide>slides/mongodb/osm-schema3.xml</slide>
+<slide>slides/mongodb/osm-schema-summary.xml</slide>
+
+<!-- DATA STORAGE -->
+<!--
+	No more [ lon, lat ], but geojson instead
+
+SAY WHERE ELSE GeoJson is used
+-->
+<slide>slides/mongodb/osm-import-location-section.xml</slide>
+<slide>slides/mongodb/geojson.xml</slide>
+
+<!--
+	POINT:
+    show an image, and the GeoJson under 
+-->
+<slide>slides/mongodb/geojson-point.xml</slide>
+<!--
+	LINESTRING:
+    show an image, and the GeoJson under 
+-->
+<slide>slides/mongodb/geojson-linestring.xml</slide>
+<!--
+	POLYGON:
+    show an image, and the GeoJson under 
+-->
+<slide>slides/mongodb/geojson-polygon.xml</slide>
+
+<!--
+	CELLS,
+    We divide the surface of the earth into cells
+        A library called S2 from Google does the hard work
+    Cells have a level which define the size of the cell.
+    S2 provides 31 levels
+    The higher the level, the smaller the cell, and therefore the more needed to cover the earth
+    By default, we use all levels between 500m on a side and 100km on a side
+-->
+<slide>slides/mongodb/cells.xml</slide>
+<!--
+	Show grid of (part of) London:
+	- Point, Westminster palace
+	- Line, Oxford Street
+    - Polygon, Hyde Park
+-->
+<slide>slides/mongodb/cells-level10-example-london-1.xml</slide>
+<slide>slides/mongodb/cells-level10-example-london-2.xml</slide>
+<slide>slides/mongodb/cells-level10-example-london-3.xml</slide>
+
+<slide>slides/map/osm-xapi.xml</slide>
+<slide>slides/map/osm-data.xml</slide>
+<slide>slides/map/import-script-manchester.xml</slide>
+
+
+<!-- operators
+    $near
+        find stuff near a point
+        index required
+    $geoWithin
+        find stuff within a polygon/circle
+        index NOT required
+    $geoIntersects
+        find stuff that intersects with other stuff
+        index NOT required
+
+-->
+<slide>slides/mongodb/geo-in-2.4.xml</slide>
+
+<!-- near
+	- Example with road and park
+	- slide with index/no index, and comparsion with 2.2?
+-->
+<!-- geoWithin
+	- Example with road and park
+	- slide with index/no index, and comparsion with 2.2?
+-->
+<!-- geoIntersects
+	- Example with road and park
+	- slide with index/no index, and comparsion with 2.2?
+-->
+<slide>slides/mongodb/geo-near.xml</slide>
+
+<!--
+	NEAR
+
+    Starts from a point
+    Looks at concentric donuts from that point
+    Want to look at documents within the donut
+    If distance from query point to document is within the donut, output
+    Adapts size of the donut as needed
+-->
+<!--
+	GeoWithin/GeoIntersecs
+
+    Generate a covering for geometry in query
+    Look at all points in all overlapping cells
+        Cells may be larger or smaller than our covering
+        Must look at cells that contain our covering
+        Must look at cells that we contain
+    See if documents are within or intersect our query geometry
+
+	Show examples of:
+	- within: The Palace of Westminster (point) in "City of Westminster" (polygon)
+	- intersect: thames (line) crossing London (polygon)
+-->
+<slide>slides/mongodb/geo-within.xml</slide>
+<slide>slides/mongodb/geo-within-2.xml</slide>
+
+<slide>slides/mongodb/geo-intersects.xml</slide>
+
+
+<!--
+Without index:
+    $near
+        Look at every point
+        Sort by distance
+        Very slow, so requires an index.
+    $geoWithin
+        Look at every document
+        Is it within the query polygon?
+        Order is arbitrary
+    $geoIntersects
+        Look at every document
+        Does it intersect with the query geometry?
+        Order is arbitrary
+-->
+<!-- AGGREGATION:
+
+	- show tube stations per borough
+	- show pubs by borough
+
+http://docs.mongodb.org/manual/reference/aggregation/#stage._S_geoNear
+
+- distance is important
+- $geoNear in aggregation can't deal with more than one 2dsphere index
+- spherical option is *required* when using a 2dsphere index
+-->
+<slide>slides/mongodb/geo-aggregation.xml</slide>
+<slide>slides/mongodb/geo-aggregation2.xml</slide>
+
+<slide>slides/mongodb/osm-import-leaflet-section.xml</slide>
+
+<slide>slides/map/leaflet.xml</slide>
+<slide>slides/map/leaflet-ajax.xml</slide>
+<slide>slides/map/leaflet-json-return.xml</slide>
+
+<slide>slides/mongodb/resources.xml</slide>
+
+</presentation>