Atelier Capitole du Libre 2013 - Toulouse
Posted by Cyrille37 on 24 November 2013 in French (Français).On va mapper les cinémas et théâtres en Haute-Garonne (31) sur une carte avec le logiciel TileMill.
Préparer TileMill
TileMill se télécharge (Linux, PC et Mac) sur le site de MapBox: http://mapbox.com/tilemill/
Ses sources et bien d’autres outils sont dispo sur les dépôts GitHub de MapBox: https://github.com/mapbox
Vous pouvez faire une promenade dans les exemples fournis.
L’IHM est simple :
- en bas à gauche les icones pour gérer les calques (layers) et autres trucs.
- en haut à droite le bouton “save” qui permet de mettre à jour le rendu.
Ensuite on lance le logiciel et on fait nouveau projet.
Dessiner tous les pays
MapBox fourni un fichier que l’on peut récupérer à l’url sur : http://mapbox-geodata.s3.amazonaws.com/natural-earth-1.4.0/cultural/10m-admin-0-countries.zip
Dans TileMill, dans le nouveau projet, on ajoute un layer de type File. On indique le chemin du fichier 10m-admin-0-countries.zip et on clique sur “Save and Style”.
Le contour des communes du département de Haute-Garonne
2 méthodes pour récupérer les données OpenStreetMap: faire une requête Overpass-API ou télécharger un export au format ESRI ShapeFile.
avec Overpass-API
ATTENTION Si vous utilisez la variable {{bbox}} il faut positionner la carte de façon que toute la Haute-Garonne soit affichée
La requête Overpass-API :
<osm-script output="xml">
<query type="relation">
<has-kv k="boundary" v="administrative"/>
<has-kv k="admin_level" v="8"/>
<has-kv k="ref:INSEE" regv="^31.*"/>
<bbox-query {{bbox}}/>
</query>
<union>
<item/>
<recurse type="relation-way"/>
<recurse type="way-node"/>
</union>
<print mode="body"/>
</osm-script>
avec un export ShapeFile OSM_Fr
Dans le répertoire : http://export.openstreetmap.fr/contours-administratifs/communes/ on prend le fichier: http://export.openstreetmap.fr/contours-administratifs/communes/copie-du-2013-11-20/31-Haute-Garonne.shp.tar.gz
Ajouter un layer
Dans TileMilll, dans le nouveau projet on ajoute un layer de type “File”. On va chercher le fichier des limites des communes, le fichier geojson ou le shapefile.
La feuille de style :
@futura_med: "Futura Medium","Function Pro Medium","Ubuntu Regular","Trebuchet MS Regular","DejaVu Sans Book";
Map {
background-color: #b8dee6;
}
#10madmin0countries {
line-color:#c02754;
line-width:0.5;
polygon-opacity:1;
polygon-fill:#fff;
}
#10madmin0countries[zoom<=10] {
text-name: "''";
text-face-name:@futura_med;
text-size: 11;
text-halo-fill: rgba(255,255,255,0.5);
text-halo-radius: 1;
[zoom<=4] {
text-name: "[ABBREV]";
}
[zoom>4] {
text-name: "[NAME]";
}
}
#31hautegaronne {
line-color:#594;
line-width:0.5;
polygon-opacity:1;
polygon-fill:#ae8;
}
#31hautegaronne[zoom>=11] {
text-name: "[COMMUNE]";
text-face-name:@futura_med;
text-size: 11;
text-halo-fill: rgba(255,255,255,0.5);
text-halo-radius: 1;
}
Les Cinémas et Théatres
La requête Overpass-API:
<osm-script>
<query into="_" type="area">
<has-kv k="name" modv="" v="Haute-Garonne"/>
<has-kv k="boundary" modv="" v="administrative"/>
</query>
<query into="_" type="way">
<has-kv k="amenity" regv="cinema|theater" />
<area-query from="_" into="_" ref=""/>
</query>
<union into="_">
<item set="_"/>
<recurse from="_" into="_" type="way-node"/>
</union>
<print from="_" mode="meta"/>
<query into="_" type="area">
<has-kv k="name" modv="" v="Haute-Garonne"/>
<has-kv k="boundary" modv="" v="administrative"/>
</query>
<query into="_" type="node">
<has-kv k="amenity" regv="cinema|theater" />
<area-query from="_" into="_" ref=""/>
</query>
<print from="_" mode="meta"/>
</osm-script>
le fichier résultat au format GeoJson: http://dl.free.fr/gSw6asjPF
La feuille de style:
@futura_med: "Futura Medium","Function Pro Medium","Ubuntu Regular","Trebuchet MS Regular","DejaVu Sans Book";
Map {
background-color: #b8dee6;
}
#10madmin0countries {
line-color:#c02754;
line-width:0.5;
polygon-opacity:1;
polygon-fill:#fff;
}
#10madmin0countries[zoom<=10] {
text-name: "''";
text-face-name:@futura_med;
text-size: 11;
text-halo-fill: rgba(255,255,255,0.5);
text-halo-radius: 1;
[zoom<=4] {
text-name: "[ABBREV]";
}
[zoom>4] {
text-name: "[NAME]";
}
}
#31hautegaronne {
line-color:#6dab5e;
line-width:0.5;
polygon-opacity:0.5;
polygon-fill:#6dab5e;
}
#31hautegaronne[zoom>=11] {
text-name: "[COMMUNE]";
text-face-name:@futura_med;
text-size: 11;
text-halo-fill: rgba(255,255,255,0.5);
text-halo-radius: 1;
}
#hgct {
line-color:#c02754;
line-width:0.5;
polygon-opacity:1;
polygon-fill:#fff;
}
#hgct[amenity!=""] {
marker-width:48;
marker-allow-overlap:true;
[amenity="cinema"] {
marker-file: url(/home/cyrille/Bureau/CDL2013_Atelier/cinema-24.svg);
}
[amenity="theatre"] {
marker-file: url(/home/cyrille/Bureau/CDL2013_Atelier/theatre-24.svg);
}
}
Les icons : cinema-24.svg, theatre-24.svg
Les contours et noms des pays (by MapBox) : http://mapbox-geodata.s3.amazonaws.com/natural-earth-1.4.0/cultural/10m-admin-0-countries.zip