la carto c'est rigolo


Nicolas Barradeau barradeau.com @nicoptere

cartographie

étude et réalisation de cartes, souvent géographiques et un peu chiantes

créativité

commencer à dessiner une fourmi et finir par sculpter un dinosaure (géant)

un gros problème

la terre n'est pas plate, c'est même pas une sphère, c'est une plaie à déplier

chaque système de projection a des atouts et des inconvénients, pas de solution miracle

prémisces propriétaires

la cartographie est un outil indispensable dans les domaines civils et militaires

harmonisation

en 2005, une PME américaine (Google) lance une application Web (Google Maps) qui utilise un format de projection appelé EPSG 3857 ou srid: 900913 (1337, lol) et des tiles rasterisées carrées (XYZ tiles)leur base utilisateur fait le reste et ça devient la norme pour internet

harmonisation²

une deuxième PME (Microsoft) apporte une contribution majeure en normalisant le nommage des tiles

To convert tile coordinates into a quadkey, the bits of the Y and X coordinates are interleaved, and the result is interpreted as a base-4 number (with leading zeros maintained) and converted into a string

tileX = 3 = 011 

tileY = 5 = 101 

quadkey = 100111 > 213 en base 4 > “213”

l'avènement OSM

OpenStreetMap est un projet international fondé en 2004 dans le but de créer une carte libre du monde

crowdsourcing

OpenStreetMap est un projet supporté par quelques institutions et maintenu par des utilisateurs (passionnés)

depuis 2007, tout le monde est un GPS

API

OpenStreetMap expose une API publique ainsi que des planet dumps (des instantanés de la base entière téléchargeables séparément)

format .OSM

un node OSM

<node id="24909856" visible="true" version="4" changeset="3707436" timestamp="2010-01-24T23:35:50Z" user="lapinos03" uid="33634" lat="48.8478046" lon="2.3991444"/>

XML, verbeux, lourd, exhaustif

user="lapinos03"

format .PBF

00000010  __ __ __ __ __ 78 9c e3  92 e2 b8 70 eb da 0c 7b  ||.q.xx.....p...{|
00000020  81 0b 7b 7a ff 39 49 34  3c 5c bb bd 9f 59 a1 61  |..{z.9I4<\...Y.a|
00000030  ce a2 df 5d cc 4a 7c fe  c5 b9 c1 c9 19 a9 b9 89  |...].J|.........|
00000040  ba 61 06 7a 66 4a 5c 2e  a9 79 c5 a9 7e f9 29 a9  |.a.zfJ\..y..~.).|
00000050  c5 4d 8c fc c1 7e 8e 01  c1 1e fe 21 ba 45 46 26  |.M...~.....!.EF&|
00000060  96 16 26 5d 8c 2a 19 25  25 05 56 fa fa e5 e5 e5  |..&].*.%%.V.....|
00000070  7a f9 05 40 a5 25 45 a9  a9 25 b9 89 05 7a f9 45  |z..@.%E..%...z.E|
00000080  e9 fa 89 05 99 fa 40 43  00 c0 94 29 0c

binaire, compact, exhaustif et impropre à la consomation

format .JSON

compact, partiel, utilisable sur internet

var result = {
    type:"FeatureCollection",
    features:[{
        geometry:{
            type:"Polygon",
            coordinates:[[[-122.26777,37.81545],[-122.26758,37.81596],...]]},
        type:"Feature",
        id:"4d2aa2869f",
        properties:{}
    }/*[...]*/ ]
}

format .mbtiles

format d'échange permettant de stocker un ensemble de tiles sous forme de DB sqlite.

OSM ne propose pas d'exporter ce format, il doit être compilé à part mais il est très utile pour les apps offline

MOBAC utilitaire de création, ajouter un tileset custom et requêter en PHP (démo et source)

un gros graphe

OpenStreetMap est donc un graphe géant composé de nodes et de relations de plusieurs types et il y en a beaucoup

c'est une source vectorielle avant d'être une source raster, certains providers permettent de customiser ces tiles vectorielles

GIS: Geographic Information System

natural earth ensemble de ressources raster et vectorielles

Overpass API web simplifiée pour appeler OSM

FreeGISData collection de ressources de plus ou moins bonne qualité

QGIS "Système d'Information Géographique Libre et Open Source" (et super solide)

rasteriser à la main

maperitive utilitaire de création de tilesets

maptiler peut rendre service pour des petits trucs

QGIS la voie du samouraï

mais rasteriser, 

c'est un métier 

cartoDB + données non topographiques

mapzen serveur de tiles avec customisation

mapbox pareil mais pour les hipsters

 

une adresse pour visualiser les différents types de cartes: leaflet-providers

au delà des cartes

un graphe permet de modéliser des données au delà de la géographie, on peut donc étendre la définition de cartographie à celle de réseaugraphie ou d'historiographie (OSM garde une trace des modifications)

wonder women

du GPS à OSM

le champ de recherche sur la construction de plans est dense mais je suis tombé sur ce bouquin dont 3 des 4 co-auteurs sont des femmes

 

dans un milieu qui reste très masculin, je voulais rendre hommage à ces héroïnes discrètes qui rendent notre vie meilleure

comment on fait?

avec des infos utilisateur, il faut une base de coordonées GPS avec une notion de temps.

ensuite, on agrège puis on décime. le site compagnon du livre rassemble la plupart des publications et parfois leur implémentation.

 

mon préféré

On Vehicle Tracking Data-Based Road Network Generation 

parce qu'il utilise une distance de Fréchet

de l'art?

depuis une soixantaine d'années, on a vu émerger une forme d'art assistée par ordinateur. longtemps réservée à un petit nombre, cette pratique s'est démocratisée au cours des années 1980 avec l'arrivée des ordinateurs personnels grand public

depuis la fin des années 1990, grâce à internet et à des outils plus faciles d'accès, les pratiques artistiques numériques se sont généralisées et diversifiées

depuis une dizaine d'années, l'open data et la visualisation de données ont fait leur apparition vulgarisant une esthétique de la complexité dont l'art s'est évidemment emparé

la visualisation de données, se divise généralement en deux sous catégories: informative et exploratoire. la cartographie se prête éminemment à l'exploration.

fan de visual complexity depuis fort longtemps, j'ai fait l'acquisition du livre sur la cartographie des réseaux


un peu déçu, la partie sur les arbres vaut le coup, le reste est déjà vu, sa taxonomie des nouvelles formes est inconséquente


il parle de networkism, un mouvement artistique initié... d'après Visual Complexity 

Networkism is a growing artistic trend, characterized by the portrayal of figurative graph structures—illustrations of network topologies revealing convoluted patterns of nodes and links

les mains sales

la carto sans les mains

leaflet.js LE moteur d'affichage de carte JS

openlayers la même chose mais... différent

mapbox.GL rendu WebGL 2D des tiles MapBox

tangram.js rendu WebGL 3D des tiles Mapzen 

vizicities & OSM Buildings voir les villes en 3D

cesium & WebGLearth globe 3D open source

la carto à la main...

4 métriques

  • latitude et longitude

  • identifiants des tiles

  • mètres, kilomètres

  • pixels

des variables variables

degré latitude longitude
110.574 km 111.320 km
15° 110.649 km 107.550 km
30° 110.852 km 96.486 km
45° 111.132 km 78.847 km
60° 111.412 km 55.800 km
75° 111.618 km 28.902 km
90° 111.694 km 0.000 km

sur une sphère, les latitudes / longitudes n'ont pas un rapport constant au rayon de la terre (qui varie...)

des droites courbes

function latLngDistance(lat1, lng1, lat2, lng2){
    var RAD = Math.PI / 180;
    var p1 = lat1 * RAD;
    var p2 = lat2 * RAD;
    var tp = (lat2-lat1) * RAD;
    var td = (lng2-lng1) * RAD;
    var a = Math.sin(tp/2) * Math.sin(tp/2) +
            Math.cos(p1) * Math.cos(p2) *
            Math.sin(td/2) * Math.sin(td/2);
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    var R = EARTH_RADIUS ; // meters or km
    return R * c;
}

Hic sunt dracones

quand on projette la sphère en 2D, on étire les longitudes à mesure qu'on s'approche des pôles, pas joli joli mais ça va.

 

en revanche, comme on doit utiliser une échelle logarithmique pour projeter les latitudes, il est impossible de représenter ce qui se passe au delà de +/- ~85.0519°...

ordre et beauté

à l'usage quand on travaille à l'échelle d'une ville, ces variations sont négligeables. il faut toutefois pouvoir jongler entre des mètres, des angles, des pixels et des indices arbitraires (zoom, identifiants des tiles)

 

et quand tout semble perdu,

un héros surgit du néant,

ce héros s'appelle... 

grâce à la classe précédente, je me suis fait une API pour créer une carte de tiles XYZ (c'est donc possible)

 

pros: légère (6Ko zippée), rend les tiles sur un canvas 2D

 

cons: pas rapide, pas puissante, incomplète, buggée, pas responsive, pas à jour, pas mobile friendly, pas retina, n'obéit qu'à son maître...

STOP!

Hammer Time!

elevation

habitat

bref

l'accès aux sources de données libres et un accès simplifié à leur manipulation permet de nouvelles formes de représention et d'exploration du monde.

 

les interfaces sont accessibles et performantes et si ce que nous en ferons est incertain, les outils sont là,

autant s'en servir

merci!

+ ressources