OpenStreetMap

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

Location: 12, 1, Toulouse, Haute-Garonne, Midi-Pyrénées, 31000;31100;31200;31300;31400;31500, France métropolitaine

Leave a comment

Parsed with Markdown

  • Headings

    # Heading
    ## Subheading

  • Unordered list

    * First item
    * Second item

  • Ordered list

    1. First item
    2. Second item

  • Link

    [Text](URL)
  • Image

    ![Alt text](URL)

Login to leave a comment