©	Copyright	2016	Jawg	 1	
Jawg
Full control of your maps
http://jawg.io
©	Copyright	2016	Jawg	 2	
Who is Maurice?
©	Copyright	2016	Jawg	 3	
Maps before
Maurice knows maps have changed
©	Copyright	2016	Jawg	 4	
Maps today
©	Copyright	2016	Jawg	 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)
©	Copyright	2016	Jawg	 6	
Until one day…
©	Copyright	2016	Jawg	 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.
©	Copyright	2016	Jawg	 8	
B-I-N-G-O
©	Copyright	2016	Jawg	 9	
Jawg
Maps, and more.
http://jawg.io
©	Copyright	2016	Jawg	 10	
Our first day at Jawg
©	Copyright	2016	Jawg	 11	
https://switch2osm.org/serving-tiles/manually-building-a-tile-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
©	Copyright	2016	Jawg	 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?
©	Copyright	2016	Jawg	 13	
1. What is a map?
©	Copyright	2016	Jawg	 14	
1. What is a map?
“Digital Maps” are usually made of 4 services
•  Geocoding
•  Routing
•  Maps (Background)
•  Custom data (Your POIs)
©	Copyright	2016	Jawg	 15	
1. What is a map?
Map	of	Paris	scale	1:15	000	(zoom	15)	
World:	70	trillion	pixels
©	Copyright	2016	Jawg	 16	
1. What is a map?
Map	of	Paris	scale	1:15	000	(zoom	15)	
World:	1	billion	Jles	256x256	pixels
©	Copyright	2016	Jawg	 17	
1. What is a map?
Zoom 0
Scale 1:500 Million
Zoom 1
Scale 1:250 Million
©	Copyright	2016	Jawg	 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
©	Copyright	2016	Jawg	 19	
1. What is a map?
©	Copyright	2016	Jawg	 20	
2. The purpose of a map-server
©	Copyright	2016	Jawg	 21	
2. The purpose of a map-server
•  Draw your future map (roads, waterareas etc…)
•  Handle storage & caching
•  Handle import strategy
©	Copyright	2016	Jawg	 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
©	Copyright	2016	Jawg	 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?
©	Copyright	2016	Jawg	 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.
©	Copyright	2016	Jawg	 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?
©	Copyright	2016	Jawg	 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
©	Copyright	2016	Jawg	 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
©	Copyright	2016	Jawg	 28	
Jawg
Wrap-up
Take control of your maps
©	Copyright	2016	Jawg	 29
©	Copyright	2016	Jawg	 30	
B2B / B2B2C maps
©	Copyright	2016	Jawg	 31	
B2B / B2B2C maps
©	Copyright	2016	Jawg	 32	
Mobile apps / Augmented Reality
©	Copyright	2016	Jawg	 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
©	Copyright	2016	Jawg	 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
©	Copyright	2016	Jawg	 35	
Thanks for your attention!
Loïc Ortola
lortola@jawg.io
@jawgio
http://jawg.io
http://github.com/jawg
?

Jawg maurice vs google maps