SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
August 7, 2015 GOTHENBURG
Client side rendering of maps using MapCSS
Jonas Danielsson <jonas@threetimestwo.org>
Client side rendering of maps using MapCSS 2
Why do we want this?
download less data
makes offline mode feasible
better HiDPI support
rely less on third-party services
our own GNOME style of maps
Client side rendering of maps using MapCSS 3
OpenStreetMaps
collaborative project to create editable map of the world
built by volunteers (2 million of them)
over 30 million changesets
over 20000 changes per day
Client side rendering of maps using MapCSS 4
Mapping
node, way, relations
feature described by tags (key=value)
freestyle tagging
Client side rendering of maps using MapCSS 5
Map tiles
(a) zoom 12 (b) zoom 14 (c) zoom 16
referenced via coordinates (x, y, z)
makes caching easier
progressive loading
zoom levels include 4(zoom level) tiles
Client side rendering of maps using MapCSS 6
zoom tile count
0 1
1 4
2 16
... ...
16 4,294,967,296
17 17,179,869,184
18 68,719,476,736
Client side rendering of maps using MapCSS 7
Vector tiles
same coordinate reference style (x, y, z)
vector representations of the features in the tile
metadata, road names, area types – OSM tags
smaller in size than image tiles
Client side rendering of maps using MapCSS 8
How much smaller?
bounding box of Gothenburg
zoom 14 15 16 17 total total compressed
tiles 309 1045 3980 15481 20814 —
image size 3.2M 9.5M 29M 92M 133M 67M
vector size 3.6M 7.0M 19M 63M 92M 13M
image tiles (PNG) from OpenStreetMap map servers
Mapbox vector tiles, served by Mapzen
the real win is when compressed
Client side rendering of maps using MapCSS 9
Mapbox Vector tile format
Google Protocol buffers as container format
consists of one or more named layers
each layer contains one or more features
features contain attributes and geometry
Client side rendering of maps using MapCSS 10
Mapbox Vector tile format
Feature
layer = landuse
kind = pedestrian
name = Järntorget
area = 17315
source = openstreetmap.org
id = 125675120
contains OpenStreetMap key=value tags
point, linestring or polygon
contains encoded geometry
Client side rendering of maps using MapCSS 11
Mapbox Vector tile format
Geometry
MoveTo(3, 6), LineTo(8, 12), LineTo(20, 34), ClosePath
Encoded as: [ 9 6 12 18 10 12 24 44 15 ]
| | ‘> [00001 111] command type 7 (ClosePath), length 1
| | ===== relative LineTo(+12, +22) == LineTo(20, 34)
| | ===== relative LineTo(+5, +6) == LineTo(8, 12)
| ‘> [00010 010] = command type 2 (LineTo), length 2
| ==== relative MoveTo(+3, +6)
‘> [00001 001] = command type 1 (MoveTo), length 1
contains a stream of repeatable commands
MoveTo, LineTo, ClosePath
parameters uses zigzag encoding
Client side rendering of maps using MapCSS 12
way[highway=secondary],
way[highway=road],
way[highway=residential] {
width: 7;
color: white;
z-index: 5;
}
stylesheet language for maps
operates on OSM tags, supports zoom filters
Client side rendering of maps using MapCSS 13
MapCSS
selectors
canvas {
color: #FAEBD7;
}
OpenStreetMap object types
node
way
relation
special cases
area
line
canvas
*
Client side rendering of maps using MapCSS 14
MapCSS
tests
way[is_tunnel=yes] {
dashes: 3, 3;
}
way|z8-17[highway=motorway][is_bridge=yes] {
casing-color: #cc6500;
}
binary operators allowed: !=, !=, = , >, <, >=, <=
or unary: way[highway]
restrict to zoom level: area|z17-19[building]
Client side rendering of maps using MapCSS 15
What do we have?
vector-tile-glib
(d) MapQuest (e) vector-tile-glib
uses GLib and GObject
renders Mapbox Vector tile format
supports a subset of MapCSS
Client side rendering of maps using MapCSS 16
vector-tile-glib
mapbox.render_async(cr, function() {
surface.writeToPNG(’test.png’);
Mainloop.quit(’test-bindings’);
});
currently uses flex as tokenizer and lemon as parser
supports a subset of MapCSS
hooks into libchamplain and can be used by Maps
hosted on Github
Client side rendering of maps using MapCSS 17
Style help needed
Client side rendering of maps using MapCSS 18
Some way to go
Client side rendering of maps using MapCSS 19
Roadmap / wishlist
infrastructure to serve vector tiles
tiles.gnome.org?
rely on third-party?
improve vector-tile-glib
keep beutifying the style
add offline support to libchamplain / Maps
offline search?
Client side rendering of maps using MapCSS 20
Get involved!
We need you!
Client side rendering of maps using MapCSS 21
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Use of CityGML standard in the context of Smart City
Use of CityGML standard in the context of Smart CityUse of CityGML standard in the context of Smart City
Use of CityGML standard in the context of Smart Cityi-SCOPE Project
 
3D enabling Smart Cities
3D enabling Smart Cities3D enabling Smart Cities
3D enabling Smart Citiesi-SCOPE Project
 
11 1 Areas Of Rectangles
11 1 Areas Of Rectangles11 1 Areas Of Rectangles
11 1 Areas Of RectanglesMr. Hohman
 
Assignment vector raster
Assignment vector rasterAssignment vector raster
Assignment vector rasterfredsk2006
 
Making Beautiful Maps: Oct 5 2011
Making Beautiful Maps: Oct 5 2011Making Beautiful Maps: Oct 5 2011
Making Beautiful Maps: Oct 5 2011Jake Levitas
 
QGIS Module 4
QGIS Module 4QGIS Module 4
QGIS Module 4CAPSUCSF
 
Geographic information system and remote sensing
Geographic information system and remote sensingGeographic information system and remote sensing
Geographic information system and remote sensingchala hailu
 
Petrel course Module_1: Import data and management, make simple surfaces
Petrel course Module_1: Import data and management, make simple surfacesPetrel course Module_1: Import data and management, make simple surfaces
Petrel course Module_1: Import data and management, make simple surfacesMarc Diviu Franco
 
data visualization workshop_Krakovetskyi
data visualization workshop_Krakovetskyi data visualization workshop_Krakovetskyi
data visualization workshop_Krakovetskyi Maksym Klyuchar
 
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...JinTaek Seo
 
232422261 mapinfo-training-slides-190807
232422261 mapinfo-training-slides-190807232422261 mapinfo-training-slides-190807
232422261 mapinfo-training-slides-190807Arwan Priatna
 
All the New Cool Stuff in QGIS 2.0
All the New Cool Stuff in QGIS 2.0All the New Cool Stuff in QGIS 2.0
All the New Cool Stuff in QGIS 2.0Nathan Woodrow
 
Processing Landsat 8 Multi-Spectral Images with GRASS Tools & the potential o...
Processing Landsat 8 Multi-Spectral Images with GRASS Tools & the potential o...Processing Landsat 8 Multi-Spectral Images with GRASS Tools & the potential o...
Processing Landsat 8 Multi-Spectral Images with GRASS Tools & the potential o...Shaun Lewis
 

Was ist angesagt? (19)

QGIS Tutorial 2
QGIS Tutorial 2QGIS Tutorial 2
QGIS Tutorial 2
 
Use of CityGML standard in the context of Smart City
Use of CityGML standard in the context of Smart CityUse of CityGML standard in the context of Smart City
Use of CityGML standard in the context of Smart City
 
QGIS training class 1
QGIS training class 1QGIS training class 1
QGIS training class 1
 
3D enabling Smart Cities
3D enabling Smart Cities3D enabling Smart Cities
3D enabling Smart Cities
 
11 1 Areas Of Rectangles
11 1 Areas Of Rectangles11 1 Areas Of Rectangles
11 1 Areas Of Rectangles
 
Assignment vector raster
Assignment vector rasterAssignment vector raster
Assignment vector raster
 
Making Beautiful Maps: Oct 5 2011
Making Beautiful Maps: Oct 5 2011Making Beautiful Maps: Oct 5 2011
Making Beautiful Maps: Oct 5 2011
 
QGIS Module 4
QGIS Module 4QGIS Module 4
QGIS Module 4
 
Geographic information system and remote sensing
Geographic information system and remote sensingGeographic information system and remote sensing
Geographic information system and remote sensing
 
Velocity model building in Petrel
Velocity model building in PetrelVelocity model building in Petrel
Velocity model building in Petrel
 
Lar calc10 ch07_sec1
Lar calc10 ch07_sec1Lar calc10 ch07_sec1
Lar calc10 ch07_sec1
 
Petrel course Module_1: Import data and management, make simple surfaces
Petrel course Module_1: Import data and management, make simple surfacesPetrel course Module_1: Import data and management, make simple surfaces
Petrel course Module_1: Import data and management, make simple surfaces
 
data visualization workshop_Krakovetskyi
data visualization workshop_Krakovetskyi data visualization workshop_Krakovetskyi
data visualization workshop_Krakovetskyi
 
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
 
Lecture 13
Lecture 13Lecture 13
Lecture 13
 
232422261 mapinfo-training-slides-190807
232422261 mapinfo-training-slides-190807232422261 mapinfo-training-slides-190807
232422261 mapinfo-training-slides-190807
 
All the New Cool Stuff in QGIS 2.0
All the New Cool Stuff in QGIS 2.0All the New Cool Stuff in QGIS 2.0
All the New Cool Stuff in QGIS 2.0
 
server-side-fusion-vts
server-side-fusion-vtsserver-side-fusion-vts
server-side-fusion-vts
 
Processing Landsat 8 Multi-Spectral Images with GRASS Tools & the potential o...
Processing Landsat 8 Multi-Spectral Images with GRASS Tools & the potential o...Processing Landsat 8 Multi-Spectral Images with GRASS Tools & the potential o...
Processing Landsat 8 Multi-Spectral Images with GRASS Tools & the potential o...
 

Ähnlich wie Client side rendering of maps using MapCSS

Concepts and Methods of Embedding Statistical Data into Maps
Concepts and Methods of Embedding Statistical Data into MapsConcepts and Methods of Embedding Statistical Data into Maps
Concepts and Methods of Embedding Statistical Data into MapsMohammad Liton Hossain
 
Dynamic Mapping of Raster Data (IV 2009)
Dynamic Mapping of Raster Data (IV 2009)Dynamic Mapping of Raster Data (IV 2009)
Dynamic Mapping of Raster Data (IV 2009)Matthias Trapp
 
State of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceState of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceOSCON Byrum
 
3D WebGIS using Opensource software
3D WebGIS using Opensource software3D WebGIS using Opensource software
3D WebGIS using Opensource softwareParthesh Bulbule
 
Tilemill gwu-wboykinm
Tilemill gwu-wboykinmTilemill gwu-wboykinm
Tilemill gwu-wboykinmBill Morris
 
Interactive Rendering and Stylization of Transportation Networks Using Distan...
Interactive Rendering and Stylization of Transportation Networks Using Distan...Interactive Rendering and Stylization of Transportation Networks Using Distan...
Interactive Rendering and Stylization of Transportation Networks Using Distan...Matthias Trapp
 
DDGK: Learning Graph Representations for Deep Divergence Graph Kernels
DDGK: Learning Graph Representations for Deep Divergence Graph KernelsDDGK: Learning Graph Representations for Deep Divergence Graph Kernels
DDGK: Learning Graph Representations for Deep Divergence Graph Kernelsivaderivader
 
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...Manikanta Kondeti
 
Map visualisation
Map visualisationMap visualisation
Map visualisationSDIEDU
 
OpenLayers Feature Frenzy
OpenLayers Feature FrenzyOpenLayers Feature Frenzy
OpenLayers Feature FrenzyAndreas Hocevar
 
CAD CAM usage for manufacturing of Solid Relief Maps
CAD CAM usage for manufacturing of Solid Relief MapsCAD CAM usage for manufacturing of Solid Relief Maps
CAD CAM usage for manufacturing of Solid Relief Mapsradhe tado
 
DASH: A C++ PGAS Library for Distributed Data Structures and Parallel Algorit...
DASH: A C++ PGAS Library for Distributed Data Structures and Parallel Algorit...DASH: A C++ PGAS Library for Distributed Data Structures and Parallel Algorit...
DASH: A C++ PGAS Library for Distributed Data Structures and Parallel Algorit...Menlo Systems GmbH
 
QGIS Training.pptx
QGIS Training.pptxQGIS Training.pptx
QGIS Training.pptxSeemaAjay7
 
Topoplan - a digital terrain modeling tool
Topoplan - a digital terrain modeling toolTopoplan - a digital terrain modeling tool
Topoplan - a digital terrain modeling toolnanoCAD India
 
Machine-Learned_3D_Building_Vectorization_From_Satellite_Imagery__paper.pdf
Machine-Learned_3D_Building_Vectorization_From_Satellite_Imagery__paper.pdfMachine-Learned_3D_Building_Vectorization_From_Satellite_Imagery__paper.pdf
Machine-Learned_3D_Building_Vectorization_From_Satellite_Imagery__paper.pdfYugank Aman
 
Integration of Google-map in Rails Application
Integration of Google-map in Rails ApplicationIntegration of Google-map in Rails Application
Integration of Google-map in Rails ApplicationSwati Jadhav
 

Ähnlich wie Client side rendering of maps using MapCSS (20)

Concepts and Methods of Embedding Statistical Data into Maps
Concepts and Methods of Embedding Statistical Data into MapsConcepts and Methods of Embedding Statistical Data into Maps
Concepts and Methods of Embedding Statistical Data into Maps
 
Dynamic Mapping of Raster Data (IV 2009)
Dynamic Mapping of Raster Data (IV 2009)Dynamic Mapping of Raster Data (IV 2009)
Dynamic Mapping of Raster Data (IV 2009)
 
The 21st Century Harvard Map
The 21st Century Harvard MapThe 21st Century Harvard Map
The 21st Century Harvard Map
 
State of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceState of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open Source
 
3D WebGIS using Opensource software
3D WebGIS using Opensource software3D WebGIS using Opensource software
3D WebGIS using Opensource software
 
Tilemill gwu-wboykinm
Tilemill gwu-wboykinmTilemill gwu-wboykinm
Tilemill gwu-wboykinm
 
Interactive Rendering and Stylization of Transportation Networks Using Distan...
Interactive Rendering and Stylization of Transportation Networks Using Distan...Interactive Rendering and Stylization of Transportation Networks Using Distan...
Interactive Rendering and Stylization of Transportation Networks Using Distan...
 
DDGK: Learning Graph Representations for Deep Divergence Graph Kernels
DDGK: Learning Graph Representations for Deep Divergence Graph KernelsDDGK: Learning Graph Representations for Deep Divergence Graph Kernels
DDGK: Learning Graph Representations for Deep Divergence Graph Kernels
 
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...
LSIVIEWER 2.0-A CLIENT-ORIENTED ONLINE VISUALIZATION TOOL FOR GEOSPATIAL VECT...
 
Google charts
Google chartsGoogle charts
Google charts
 
Map visualisation
Map visualisationMap visualisation
Map visualisation
 
OpenLayers Feature Frenzy
OpenLayers Feature FrenzyOpenLayers Feature Frenzy
OpenLayers Feature Frenzy
 
CAD CAM usage for manufacturing of Solid Relief Maps
CAD CAM usage for manufacturing of Solid Relief MapsCAD CAM usage for manufacturing of Solid Relief Maps
CAD CAM usage for manufacturing of Solid Relief Maps
 
Autocad
AutocadAutocad
Autocad
 
DASH: A C++ PGAS Library for Distributed Data Structures and Parallel Algorit...
DASH: A C++ PGAS Library for Distributed Data Structures and Parallel Algorit...DASH: A C++ PGAS Library for Distributed Data Structures and Parallel Algorit...
DASH: A C++ PGAS Library for Distributed Data Structures and Parallel Algorit...
 
QGIS Training.pptx
QGIS Training.pptxQGIS Training.pptx
QGIS Training.pptx
 
Topoplan - a digital terrain modeling tool
Topoplan - a digital terrain modeling toolTopoplan - a digital terrain modeling tool
Topoplan - a digital terrain modeling tool
 
Machine-Learned_3D_Building_Vectorization_From_Satellite_Imagery__paper.pdf
Machine-Learned_3D_Building_Vectorization_From_Satellite_Imagery__paper.pdfMachine-Learned_3D_Building_Vectorization_From_Satellite_Imagery__paper.pdf
Machine-Learned_3D_Building_Vectorization_From_Satellite_Imagery__paper.pdf
 
Integration of Google-map in Rails Application
Integration of Google-map in Rails ApplicationIntegration of Google-map in Rails Application
Integration of Google-map in Rails Application
 
Mahendran
MahendranMahendran
Mahendran
 

Kürzlich hochgeladen

Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableSeo
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLimonikaupta
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.CarlotaBedoya1
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.soniya singh
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445ruhi
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 

Kürzlich hochgeladen (20)

Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 

Client side rendering of maps using MapCSS

  • 1. August 7, 2015 GOTHENBURG Client side rendering of maps using MapCSS Jonas Danielsson <jonas@threetimestwo.org>
  • 2. Client side rendering of maps using MapCSS 2 Why do we want this? download less data makes offline mode feasible better HiDPI support rely less on third-party services our own GNOME style of maps
  • 3. Client side rendering of maps using MapCSS 3 OpenStreetMaps collaborative project to create editable map of the world built by volunteers (2 million of them) over 30 million changesets over 20000 changes per day
  • 4. Client side rendering of maps using MapCSS 4 Mapping node, way, relations feature described by tags (key=value) freestyle tagging
  • 5. Client side rendering of maps using MapCSS 5 Map tiles (a) zoom 12 (b) zoom 14 (c) zoom 16 referenced via coordinates (x, y, z) makes caching easier progressive loading zoom levels include 4(zoom level) tiles
  • 6. Client side rendering of maps using MapCSS 6 zoom tile count 0 1 1 4 2 16 ... ... 16 4,294,967,296 17 17,179,869,184 18 68,719,476,736
  • 7. Client side rendering of maps using MapCSS 7 Vector tiles same coordinate reference style (x, y, z) vector representations of the features in the tile metadata, road names, area types – OSM tags smaller in size than image tiles
  • 8. Client side rendering of maps using MapCSS 8 How much smaller? bounding box of Gothenburg zoom 14 15 16 17 total total compressed tiles 309 1045 3980 15481 20814 — image size 3.2M 9.5M 29M 92M 133M 67M vector size 3.6M 7.0M 19M 63M 92M 13M image tiles (PNG) from OpenStreetMap map servers Mapbox vector tiles, served by Mapzen the real win is when compressed
  • 9. Client side rendering of maps using MapCSS 9 Mapbox Vector tile format Google Protocol buffers as container format consists of one or more named layers each layer contains one or more features features contain attributes and geometry
  • 10. Client side rendering of maps using MapCSS 10 Mapbox Vector tile format Feature layer = landuse kind = pedestrian name = Järntorget area = 17315 source = openstreetmap.org id = 125675120 contains OpenStreetMap key=value tags point, linestring or polygon contains encoded geometry
  • 11. Client side rendering of maps using MapCSS 11 Mapbox Vector tile format Geometry MoveTo(3, 6), LineTo(8, 12), LineTo(20, 34), ClosePath Encoded as: [ 9 6 12 18 10 12 24 44 15 ] | | ‘> [00001 111] command type 7 (ClosePath), length 1 | | ===== relative LineTo(+12, +22) == LineTo(20, 34) | | ===== relative LineTo(+5, +6) == LineTo(8, 12) | ‘> [00010 010] = command type 2 (LineTo), length 2 | ==== relative MoveTo(+3, +6) ‘> [00001 001] = command type 1 (MoveTo), length 1 contains a stream of repeatable commands MoveTo, LineTo, ClosePath parameters uses zigzag encoding
  • 12. Client side rendering of maps using MapCSS 12 way[highway=secondary], way[highway=road], way[highway=residential] { width: 7; color: white; z-index: 5; } stylesheet language for maps operates on OSM tags, supports zoom filters
  • 13. Client side rendering of maps using MapCSS 13 MapCSS selectors canvas { color: #FAEBD7; } OpenStreetMap object types node way relation special cases area line canvas *
  • 14. Client side rendering of maps using MapCSS 14 MapCSS tests way[is_tunnel=yes] { dashes: 3, 3; } way|z8-17[highway=motorway][is_bridge=yes] { casing-color: #cc6500; } binary operators allowed: !=, !=, = , >, <, >=, <= or unary: way[highway] restrict to zoom level: area|z17-19[building]
  • 15. Client side rendering of maps using MapCSS 15 What do we have? vector-tile-glib (d) MapQuest (e) vector-tile-glib uses GLib and GObject renders Mapbox Vector tile format supports a subset of MapCSS
  • 16. Client side rendering of maps using MapCSS 16 vector-tile-glib mapbox.render_async(cr, function() { surface.writeToPNG(’test.png’); Mainloop.quit(’test-bindings’); }); currently uses flex as tokenizer and lemon as parser supports a subset of MapCSS hooks into libchamplain and can be used by Maps hosted on Github
  • 17. Client side rendering of maps using MapCSS 17 Style help needed
  • 18. Client side rendering of maps using MapCSS 18 Some way to go
  • 19. Client side rendering of maps using MapCSS 19 Roadmap / wishlist infrastructure to serve vector tiles tiles.gnome.org? rely on third-party? improve vector-tile-glib keep beutifying the style add offline support to libchamplain / Maps offline search?
  • 20. Client side rendering of maps using MapCSS 20 Get involved! We need you!
  • 21. Client side rendering of maps using MapCSS 21 Questions?