Propedeuse Art Academy
MSc Geo Information Science
Internship Geo Web Visualization
Maptime Amsterdam & Utrecht
Web Cartographer
Data - Design - Technology
We make interactive maps & geo data visualizations
Our expertise is open {source; data; standards}
We combine cartography with web technology
From Geo Data to the web
What you need to know as a web developer wanting to make a web map
Focus on the client side
"Everything is related to everything else, but near things are more related than distant things"Tobler's first law of geography
.. we have no choice but to think and see spatially.
They stimulate both sides of our brain: the right side that’s intuitive and aesthetic, and the left side that’s rational and analytical. Maps are this wonderful combination of both.
Maps organize complex data about the environment.
Reveal patterns and relationships.
Maps allow us to communicate about location using a common framework
Communicate locations & distances on the Earth's surface
The real shape of the earth is too complex to be useful as a reference for measurement..
3D model
Longitude, Latitude
Lon Lat in decimal degrees
GPS
Mathematical projection / translation
2D
Square, scale not relevant, shapes important
Google scheme EPSG:900913
We store data in EPSG:4326, but display it in EPSG:3857!
Standard way to store most geodata for the Web:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [5.2394137,52.0819662]
},
"properties": {
"name": "Hotel Theater Figi"
}
}
Netherlands!
WGS84 EPSG:4326
Web Mercator EPSG:3857
RD New EPSG:28992
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
Slippy maps, Google/OSM (XYZ) - TMS - QuadTrees (Microsoft)
All these little tiles load way faster than one big map!
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
the newest technology!
No interaction with objects
No information available about objects
Multiple visualizations = multiple tile sets
No colours
Arrays in a 256 x 256 matrix
Same tiling schema as Raster png tiles.
Binary format
Simplifies geometries
Rendering is done on client side not by the server
So different clients can style a map different
Small tile size. So faster data transfer.
High resolution.
Direct access to feature information.
Based on the binary protocal buffer (.pbf) from Google.
Standard already used by Esri.
Web Mercator projection, Google tiling scheme.
.mvt - .pbf
.mbtiles
About Vector-tiles from Mapbox
Open map tiles alternative
Cartiqo our own alternative
OpenLayers 3 -- Leafletseveral plugins available
Mapzen Tangram
Let's look at Leaflet for Raster tile maps
and MapboxGL.js for Vector Tile maps
Both in the workshop!
When to use what?!
An Open-Source JavaScript Library for Mobile-Friendly Interactive Maps
simplicity, performance and usability
Developed by: Vladimir Agafonkin.
Weighing about 38 KB of JS.
Has all the mapping features most developers ever need.
Can be extended with Plugins
Well documented
Provide data for you.
Provide the basemap.
Its not GIS
Leaflet is a framework
Base Layer
Raster
Data Layer / Feature Layer
Vector
let map = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap contributors'
}).addTo(map);
WMS, WFS (slow)
GeoJSON
let marker = L.marker([52.372825, 4.900321]).addTo(map);
// ADD a WMS layer
let cbs = L.tileLayer.wms('https://geodata.nationaalgeoregister.nl/wijkenbuurten2018/wms', {
'layers': 'cbs_buurten_2018',
'styles': 'wijkenbuurten2018:wijkenbuurten_thema_buurten_gemeentewijkbuurt_percentage_eenpersoonshuishoudens',
'srs': 'EPSG:28992',
'format': 'image/png',
'transparent': true,
'opacity': 0.5
}).addTo(map);
Use EPSG:28992 > Government in Netherlands obliged to use it!
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]
});
{
"version": 8,
"name": "Mijn eigen Stijl",
"sprite": "url",
"glyphs": "url/{fontstack}/{range}.pbf",
"sources": {...},
"layers": [
{
"id": "background",
"type": "background",
"paint": { "background-color":"#FFFFFF" }
},
{...}
]
}
Source
Data layers in tile
Style layer
Leaflet every source is a layer
Use without token requires own source data!
cartiqo
Vector Tiles of the Netherlands
Based on Dutch Open Geo data & OSM
Consistent
Accurate
Simple
Fast
Easy understandable layers and naming
Uniform throughout all zoom levels and source data
Developed by Webmapper
Hosted on Maptiler.nl
Everything is on Github
Feedback please?
Stay in touch or questions:
niene@webmapper.net
niene@webmapper.net |
@BNiene |
NieneB |
NieneB.nl |
Niene Boeijen |
volvo_343_dl_1980 |