Bruxelles, BD, Opendata, OpenStreetMap...

Dernière modification majeure (modifications mineures suivantes)

Résumé : La ville de Bruxelles s'est lancée dans l'OpenData. C'est encore timide, et il n'est pas évident de trouver l'ensemble des données en passant par . . .

Pas de diff disponible.

http://www.openstreetmap.org/images/osm_logo.png

La ville de Bruxelles s'est lancée dans l'OpenData. C'est encore timide, et il n'est pas évident de trouver l'ensemble des données en passant par la page dédiée que je trouve un peu confuse, mais j'ai fini par débusquer l'adresse qui les regroupe:

http://www.bruxelles.be/opendatamap.cfm

Ça n'est pas vraiment exaltant de connaître la situation des urinoirs, des canisettes ou des commissariats, mais effectivement, ça peut être utile. Plus sympathique, la liste des fresques murales des héros de bandes dessinées:

  Tintin - Hergé,4.3365303,50.8348278
  Le Chat - Geluck,4.341981410980225,50.83784442794301
  Jojo - Geerts,4.3454790115356445,50.83512061930507
  La patrouille des Castors - Mitacq,4.344427585601807,50.83562202885364
  Boule et Bill - Roba,4.34558629989624,50.83764116413087
  Odilon Verjus - Verron et Yann,4.34633731842041,50.838643923680884
  Blondin et Cirage - Jijé,4.347367286682129,50.83829160521328
  etc.

Je me suis alors amusé à les introduire dans OpenStreetMap, en effectuant la conversion vers le format osm (c'est de l'xml) grâce à ce petit script:

  #!/usr/bin/perl  -w -CSA
  use strict;
  use utf8;
  
  my $file = $ARGV[-1];
  
  
  print<<EoH;
  <?xml version="1.0" encoding="UTF-8"?>
  <osm version="0.6">
  EoH
  
  my $count = -1;
  open FILE, "<$file";
  while (<FILE>) {
    my ($data,$lon,$lat) = split(",",$_);
    chomp $lat;
    my ($title,$artist)   = split(" - ",$data);
    print<<EoNode;
   <node id="$count" lat="$lat" lon="$lon" user="gvdmoort">
    <tag k="tourism" v="artwork"/>
    <tag k="artwork_type" v="mural"/>
    <tag k="title" v="$title"/>
    <tag k="artist_name" v="$artist"/>
    <tag k="source" v="http://www.bruxelles.be/opendatamap.cfm"/>
   </node>
  EoNode
    $count--;
  }
  print "</osm>\n";

Ce qui donne des points de cette forme:

  <node id="-20" lat="50.84731553968688" lon="4.341466426849365" user="gvdmoort">
   <tag k="tourism" v="artwork"/>
   <tag k="artwork_type" v="mural"/>
   <tag k="title" v="Lucky Luke"/>
   <tag k="artist_name" v="Morris"/>
   <tag k="source" v="http://www.bruxelles.be/opendatamap.cfm"/>
  </node>

Lorsqu'on uploade ainsi une série de points, c'est l'infrastructure d'OpenStreetMap qui attribuera automatiquement une id à chacun. Mais pour pouvoir importer ces données dans l'éditeur de carte (en l'occurrence, j'ai utilisé JOSM), il faut que les données soient valides et comprennent bien une id. L'astuce est donc d'attribuer une id négative (ce qui explique la présence de l'instruction "$count--;"), qui sera négligée lors de l'upload des données.

À la suite de quoi, on peut par exemple connaître les fresques murales de la Région Bruxelloise via une requête comme

  $ wget http://www.overpass-api.de/api/xapi?node[artwork_type=mural][bbox=4.24,50.76,4.49,50.92]

http://www.k1ka.be/pics/Cubitus.png

Vérification faite via GoogleStreet, j'ai bien trouvé Cubitus dans la rue de Flandre,

http://www.k1ka.be/pics/Isabelle.png

mais Isabelle et la jolie fée Calendula sont à l'angle de la Place Anneessens et de la mal nommée rue de la Verdure, pas à la Rue des Vierges que semblent indiquer les coordonnées issues des opendata.

http://www.k1ka.be/pics/Blondin_Cirage.png

Blondin et Cirage sont bien dans la rue des Capucins, mais sensiblement à distance du point suggéré...

Finalement, je me demande si ces données sont fiables et si j'ai été bien inspiré :-( .

Rien ne vaut le relevé sur le terrain... Il ne me reste plus qu'à aller me promener. Que ça ne vous dissuade pas d'emprunter le parcours urbain consacré aux héros de la bande dessinée belge si vous passez par Bruxelles. Si vous emportez votre GPS, ça sera l'occasion de rectifier éventuellement les données en question.