jawg maurice vs google maps
TRANSCRIPT
©Copyright2016Jawg 1
Jawg
Full control of your maps
http://jawg.io
©Copyright2016Jawg 2
Who is Maurice?
©Copyright2016Jawg 3
Maps before
Maurice knows maps have changed
©Copyright2016Jawg 4
Maps today
©Copyright2016Jawg 5
Ask Maurice about mapping platforms
He will tell you about Google because : • Well… It’s famous • It’s rock solid • It’s free (or so he thinks)
©Copyright2016Jawg 6
Until one day…
©Copyright2016Jawg 7
Any viable alternatives to Google?
• Probably the best alternative around is OpenStreetMap.
• Openstreetmap is a foundation Which purpose is to create and maintain a beautiful database of the world. Which purpose is NOT to be serving businesses.
• Many Opensource tools to make beautiful maps
… Without any business support ... With no roadmap or guarantee
Facing the effort and the risks, companies usually play safe and will rather go with Google.
©Copyright2016Jawg 8
B-I-N-G-O
©Copyright2016Jawg 9
Jawg
Maps, and more.
http://jawg.io
©Copyright2016Jawg 10
Our first day at Jawg
©Copyright2016Jawg 11
https://switch2osm.org/serving-tiles/manually-building-a-til
e-server-14-04/
https://github.com/mapnik/mapnik/wiki
http://wiki.openstreetmap.org/wiki/Mod_tile
https://github.com/openstreetmap/mod_tile/blob/master/renderd.conf
https://github.com/openstreetmap/osm2pgsql/blob/master/README.md
http://wiki.openstreetmap.org/wiki/Osmosis/Replication
https://wiki.debian.org/OSM/tileserver/jessie
https://github.com/mapbox/carto/blob/master/README.md
http://wiki.openstreetmap.org/wiki/FR:Nominatim
http://osmose.openstreetmap.fr/fr/Our second day at Jawg
©Copyright2016Jawg 12
What we would have liked to know
• What is a map? • What is a map-server? • Why is it much more complicated than it seems?
©Copyright2016Jawg 13
1. What is a map?
©Copyright2016Jawg 14
1. What is a map?
“Digital Maps” are usually made of 4 services • Geocoding • Routing • Maps (Background) • Custom data (Your POIs)
©Copyright2016Jawg 15
1. What is a map?
MapofParisscale1:15000(zoom15)World:70trillionpixels
©Copyright2016Jawg 16
1. What is a map?
MapofParisscale1:15000(zoom15)World:1billionJles256x256pixels
©Copyright2016Jawg 17
1. What is a map?
Zoom 0Scale 1:500 Million
Zoom 1Scale 1:250 Million
©Copyright2016Jawg 18
1. What is a map?
Render up to Zoom 19: Sum of tiles from zoom 0 to 19: (4^20) - 1 S = ------------- ~= 366 billion tiles 3
©Copyright2016Jawg 19
1. What is a map?
©Copyright2016Jawg 20
2. The purpose of a map-server
©Copyright2016Jawg 21
2. The purpose of a map-server
• Draw your future map (roads, waterareas etc…)
• Handle storage & caching
• Handle import strategy
©Copyright2016Jawg 22
2.1. Draw me a map
• Input: Need for “drawing” rules • By scale • Depending on the desired look
• Output: Use of a rendering library
• Fetches relevant data into Database • Cuts out and handles map clipping to draw a nice tile
• Takes time, heavy on computation resources • A few ms to several minutes of rendering • CPU, memory & I/O bound
©Copyright2016Jawg 23
2.1. Draw me a map
• 100s of Gigabytes of geo-data è need critical optimizations … on the DB
• Queries / Indexation / Partitioning-Sharding / Tuning • Optimize model for rendering purposes vs query purposes • Simplified Shapes & Polygons depending on scale
… on the style • Do I really need to draw your house at zoom level 12? • Do I need to render trees one by one?
… on requests • Why ask for 25 tiles next-to-another rather than one bigger tile?
©Copyright2016Jawg 24
2.2. In summary
• Pre-computing tiles for all zoom levels is not an option. • It would take an infinite time • We would have to start over on every update • It takes lots of (unused) space
• Need for performant caching and pre-render strategies
• Every improvement has a cost • Render tiles by bloc (meta-tiles) optimizes the use of DB
sockets and I/O, but drastically lowers efficiency.
©Copyright2016Jawg 25
3. Tile Storage and caching
• Average tile size: 633 bytes è How to efficiently store those tiles in cache?
• A map view ó between 12 and 48 tiles è How to optimize I/O reads when accessing cached data?
©Copyright2016Jawg 26
3. Tile Storage and caching
è Store multiple contiguous tiles together (in the same file). This is the concept of a meta-tile.
è https://github.com/jawg/map-meta-tile-spec
*inspired by mod_tile
©Copyright2016Jawg 27
4. (Re-)import data
Import = An archive to import into a database + Heavy optimizations to convention / optimize data for fast querying & rendering
• Timeframe: a full earth import can take several hours / tens of hours.
è Be cautious about the update strategy (frequency, diffs) è Be cautious about the cache invalidation strategy
©Copyright2016Jawg 28
Jawg Wrap-up
Take control of your maps
©Copyright2016Jawg 29
©Copyright2016Jawg 30
B2B / B2B2C maps
©Copyright2016Jawg 31
B2B / B2B2C maps
©Copyright2016Jawg 32
Mobile apps / Augmented Reality
©Copyright2016Jawg 33
We provide…
1. Scalable SaaS maps: on our datacenters (partnership with OVH) on your servers (offline / intranet / secure / indivitual property)
2. Expertise, integration & help for the setup of your own map services on-premises.
3. Licenses & business support of jawg scalable products for third-party businesses • Modular Map-server, fully scalable & meta-tile-aware • Map load-balancer • Storage API & POI Manager
©Copyright2016Jawg 34
Our strong values
• Taylor-made: Web & mobiles maps, to your colors
• Independence: • on-premises • packageable in your B2B / B2C products
• Unlimited: • native Android & iOS SDKs • cache / offline mode / indoor / multi-level • shared-source
©Copyright2016Jawg 35
Thanks for your attention!
Loïc Ortola [email protected] @jawgio http://jawg.io http://github.com/jawg
?