What the map can be
Wij maken interactieve kaarten en datavisualisaties. Onze expertise is open {source; data; standaarden}. Onze kracht is het combineren van cartografie en webtechnologie.
Utrecht, The Netherlands
Edward, Frederieke, Niene en Steven
Geografie, Geo-informatiekunde, Kunstacademie, Geo Media Design
Alles Open Source
Open Data
Open standaarden
Elke dag programmeren..
& Creatief bezig zijn
Map-based visual storytelling: Kolerekaart
Marketingplan en -materiaal Geodata Lab Utrecht
Natuurlijk: je eigen interesses!
Analogue paper maps
Digital maps | VS | Web Maps |
---|---|---|
Data | Tiles, styles and servers | |
On the computer | View in a browser | |
Calculate, analyze | scroll, pan, zoom |
Digital maps
GIS software
GIS on the Web is not user friendly..
1996 Mapquest first with a web service!
in 2004 Endoxon found a way for quick online mapping! map.search.ch
2005 Google Maps took over!
The solution?
All tiles size 256x256 pixels
Placed in a grid, sharing boundaries
Seamless map
All these little tiles load way faster than one big map!
We call this slippy maps
Each zoom level has its own set of tiles!
Zoom level 0: 1 tile for the whole world.
Increases exponentially...
Zoom level 1: 4 tiles
Zoom level 2: 16 tiles
etc.
Tiles are styled and rendered in advance
Tiles are just images on the web
http://tile.openstreetmap.org/5/16/10.png
/z/x/y
Base Layer
Raster
Data Layer / Feature Layer
Vector
Data, styled, tiles, server:
Base Layer
Additional Data:
Vector Layers
Interface and Interaction
Zoom, panning, clicking etc.
Rendering wordt op server gedaan
Tegel set is vast-gezet: static
Veel opslag ruimte nodig!
Meerdere visualisaties = Meerdere tegel sets
Gebruiker kan niks aanpassen
Geen interactie met objecten mogelijk
Object informatie moet los opgevraagd worden in database
Binary encoded Protocol Buffers
Alleen data! Geen stijl kleur
Zelfde tegel schema als raster tegels
256 x 256 px
Versimpelde geometrie
Rendering gebeurt in de browser
Graphics Processing Unit(GPU)
widely supported in modern browsers
++ Rotating tilting
++ Smooth/inifinte zooming
Gecomprimeerde data, klein en snel!
Snelle productie, minder opslag
1 tegel set in opslag
Attribuut data beschikbaar in browser, minder database request!
Rendering stijl aan client-side
Minder druk op server-side
Vector = hoge resolutie, zelfs bij ver inzoomen
1 tegel set- meerder stijlen mogelijk!
Stijl kan je zelf aanpassen!
Stijlen in json of js - geen moeilijke SLD's meer nodig
BRT + BGT
Zoom level 0 tot 16
1 tegel set, meerder visualisaties!
https://github.com/PDOK/vectortiles-bgt-brt
"http://geodata.nationaalgeoregister.nl/beta/topotiles/{z}/{x}/{y}.pbf"
"https://t{s}.data.amsterdam.nl/wm/{z}/{x}/{y}.pbf"
vb #1.
Stack van Webmapper
Based on the binary protocal buffer (.pbf) from Google.
Standard already used by Esri.
Web Mercator projection, Google tiling scheme.
.mvt - .pbf
.mbtiles
Download
Online host services
Zelf maken & Zelf hosten
OpenMapTile Server (tileserverGL)
More command line tools
At the end of this workshop, you will have your own web page with an interactive map based on vector tiles! Custom styled by yourself! Your web page will be hosted on Github, so you can immediately share your progress with all your family and friends!
For beginners means: if you have NO knowledge of JavaScript, HTML and CSS, this workshop will help you get started!
https://luuks.github.io/VectorTiling/#11/52.3644/5.2416/90/60
https://thieucaris.github.io/Foss4gNLVectorMap/
kiebo009.github.io/Home-sweet-Home
jornhabes.github.io/MGIVectorMap
Start with Making a web page
Or use Code Academy
Puts it all together,
Tiles, content, interaction
Including a JavaScript library in your code is like copying and pasting someone else's code into yours. You have access to everything in that library.
In our case, it's a bunch of cool tools to make web maps and give them familiar functionality.
mapboxgl.accessToken = 'yourowntoken';
var map = new mapboxgl.Map({
container: 'map-container',
style: 'style.json',
hash: true,
zoom: 11,
pitch: 60,
bearing: 62.4,
center: [ 4.8, 52.4]
});
JavaScript Object Notation
{
"version": 8,
"name": "Mijn eigen Stijl",
"sprite": "url",
"glyphs": "url/{fontstack}/{range}.pbf",
"sources": {...},
"layers": [
{
"id": "background",
"type": "background",
"paint": { "background-color":"#FFFFFF" }
},
{...}
]
}
Everything is on Github
Used for code.
Version control.
Sharing.
Documentation.
Nodepad ++
With Syntax Highlighting!
There is more to find on the Internet
Do not keep yourself to the assignments!!
Cartography is the new code.[source]
My lists of
interesting links, workshops, presentations and background information:
for webmapping in general and d3 & Leaflet
Feel free to contact me!
Niene Boeijen
niene@webmapper.net
www.nieneb.nl