La navigation GPS à vélo et en randonnée

Pourquoi utiliser un appareil GPS à vélo

Le GPS ne remplace pas la carte papier. Quelque soit le modèle, les dimensions de l’écran ne permettent pas de représenter une zone assez grande pour afficher une zone géographique suffisamment grande et détaillée pour planifier un parcours. Par contre sur la route, le GPS remplace parfaitement la carte ou la feuille de route . Il fait gagner du temps aux intersections et empêche de se tromper de chemin.

Un nouveau parc-relais à Saint-Éstève


Montrer sur une carte plus grande Le parc-relais de Saint-Estève, annoncé pour 2006 est enfin ouvert. Il offre 75 places pour les véhicules des automobilistes qui viennent de la campagne et prendront ensuite le bus pour se rendre au centre-ville. Vu le succès des parcs existants (saviez vous qu'il y en avait un aux Arcades ?), cela fera cinq voitures de moins au centre-ville. C'est mieux que rien et cela fera cinq places de stationnement de plus au centre-ville pour ceux dont l'importance est inversement proportionelle à la distance entre la place de stationnement et le lieu de destination. Et il reste 70 places pour les cyclistes qui prennent la voiture pour sortir de Perpignan et qui gareront leur voiture dans ce bel espace le temps de faire une balade à deux roues dans le Ribéral. Image

Le « Top 10 » de la discontinuité cyclable à Perpignan

C'est quoi la « discontinuité cyclable » ? C'est une belle piste cyclable qui a coûté cher au contribuable mais qui se termine dans le vide, le vide cyclable en tout cas. C'est de l'argent jeté par la fenêtre. Une « discontinuité cyclable », cela peut aussi être un point noir dans le réseau cyclable qu'on ne peut franchir qu'en descendant du vélo, en roulant sur le trottoir ou en roulant sur une quatre-voies au milieu des voitures. À Perpignan, ce n'est pas facile de faire la sélection des « Top 10 de la discontinuité cyclable » tellement le choix est large. Vous trouver ici mes propositions pour les places de tête.

Le « Top 10 » de la discontinuité cyclable à Perpignan. 4 - La Place Catalogne

Cette discontinuité a des bonnes chances de décrocher la premiere place des Top 10. Pour se rendre à vélo du Castillet au Centre del Món on passe par le Boulevard Clémenceau, dans le couloir de bus, rapidement et en toute sécurité. Et puis en face des Dames de France, plus de couloir de bus, plus de bande cyclable, trois voies pleines de voitures. Pour rejoindre l'Avenue Charles de Gaulle, il faudrait se mettre sur la voie du milieu, entre les files de voitures qui attendent au feu et démarrent dans tous les directions au vert, puis traverser le Cours Lazare Escarguel au risque de se faire faucher par une voiture qui roule sur la file de droite pour tourner à gauche.

Le « Top 10 » de la discontinuité cyclable à Perpignan - Bourrat/Wilson

On pourrait appeler celle-là « la grande discontinuité du centre ville ». Vous descendez le le long du Boulevard Bourrat sur une belle piste cyclable et vous voulez aller vers Clemenceau / Catalogne. À la hauteur du Monument aux morts 14/18 vous vous retrouvez sur une vaste esplanade (du Souvenir Français) un espace (Dina Verny) et des allées (Maillol). Avez vous le droit d'y circuler à velo ? Faut il traverser le boulevard et continuer Rue Jeanne d'Arc ? Si oui, que faire quand on arrive en face du cinéma Le Castillet ?


Voir sur une carte plus grande

Si vous avez vous aussi votre discontinuité préférée, communiquez-moi là.

Train + vélo entre Perpignan et Villefranche-de-Conflent

Voici ce qui se passe tous les jours de la semaine dans le TER entre Perpignan et Villefranche-de-Conflent : Image Dans les voitures de type Z 7300 on a gracieusement aménagé 3 (trois) emplacements pour des vélos. Les techniciens de la SNCF ont du penser que personne n'arrivera jamais à monter un vélo les 1m50 qui séparent le quai du plancher des compartiments. Eh bien non, chaque jour et dans chaque train les cyclistes sont nombreux. En semaine, il y a ceux qui se rendent de leur village au centre du monde d'où ils continuent leur chemin à vélo vers leur lieu de travail, faute d'un réseau de transport publique digne de ce nom. Et le week-end, ce sont les VTTistes et autres sportifs qui se rendent dans le Conflent pour arpenter les versants du Canigou. Ils sont ainsi entre 5 et 10 à se disputer les trois places à crochets. Heureusement, le personnel SNCF et les autres passagers font preuve de patience et de compréhension. C'est beau le train à 1 Euro, à condition qu'on soit pas trop nombreux à en profiter. Et ne râlez pas trop, sans le petit train jaune, ce TER aurait disparu depuis longtemps. Et on aurait une belle voie verte de Perpignan à Villefranche.

OSM: Utiliser les attributs de l’admin_centre pour rendre des limites administratives

Dans la base de données OpenStreetMap, les informations sur les entités administratives (communes, départements, etc.) se trouvent généralement sur le noeud place=* qui est membre de la relation du type boundary avec le rôle admin_centre. Si on a besoin de ces informations, comme par exemple population ou name:xx, pour choisir le style du polygone ou y assigner un libellée, les structures des données crées par les outils ne permettent pas d'accéder aux informations du noeud admin_centre à partir du polygone. Cet article présente des solutions pour les bases de données PostGis crées avec osm2pgsql et les fichiers shape crées avec osmium.

PostGis / osm2pgsql

osm2pgsql reporte bien les attributs des chemins «outer» sur le polygone qu'il crée pour une relation du type «boundary» mais pas les attributs du centre administratif. En mode «slim» osm2pgsql crée bien une table <prefix>_rels qui contient pour chaque relation ses attributs et ses membres avec le rôle et l'id, mais sous une forme qui n'est pas directement exploitable avec SQL. Un exemple :
psql -d osm -c  "select members from planet_osm_rels\
                     where hstore(tags)->'name'='Corneilla-la-Rivière';"
                               members
----------------------------------------------------------------------------
{w121772197,outer,w100006391,outer,w121772204,outer,n287557758,admin_centre}
On trouve les membres d'une relation dans un array, deux valeurs par membre, le type et l'identificateur du membre et son rôle. Une petite fonction SQL permet d'acceder à l'identificateur de l'admin_centre :
CREATE OR REPLACE FUNCTION admin_centre(anyarray)
   RETURNS bigint
   LANGUAGE sql
   AS $function$
      SELECT cast(substring($1[i] from 2) as bigint)
         FROM generate_series(array_lower($1,1),array_upper($1,1),2) i 
         WHERE $1[i+1]='admin_centre';$function$
Cette fonction permet de faire des requêtes sur les relations des limites administratives avec les attributs de leurs centres administratifs :
select poly.name, point.name, point."name:ca", point.population 
   from planet_osm_rels r, 
        planet_osm_polygon poly, 
        planet_osm_point point 
   where poly.admin_level='8' 
         and admin_centre(r.members) = point.osm_id 
         and r.id = -poly.osm_id ;
Si ce type de requête n'est pas suffisamment efficace on peut copier les attributs des noeuds sur les polygones ou bien créer un table de références :
create table admin_rel 
   as select -id as rel_id,
             admin_centre(members) as admin_centre
        from planet_osm_rels 
        where hstore(tags)->'boundary'='administrative' and 
              hstore(tags)->'admin_level'  in ('8','6','4');

fichiers «shape»

On utilise pour cela l'outil osmjs et QGis. osmjs basé sur la bibliothèque osmium permet d'extraire des objets d'un fichier osm sous forme de fichier «shape». Comme osm2pgsql, cet outil crée des polygones pour les relations «boundary» mais ne tient pas compte du rôle admin_centre. Par contre il est possible de produire un fichier csv qui contient les identificateurs des polygones et de leurs noeuds admin_centre :
/*
  Osmium Javascript Example:  shape_export.js

  run with: osmjs -2 -m -l sparsetable -j shape_export.js OSMFILE
*/

var shp_places = Osmium.Output.Shapefile.open('./places', 'point');
shp_places.add_field('id', 'string', 12);
shp_places.add_field('type', 'string', 32);
shp_places.add_field('name', 'string', 32);

var shp_boundaries = Osmium.Output.Shapefile.open('./boundaries', 'polygon');
shp_boundaries.add_field('id', 'integer', 10);
shp_boundaries.add_field('type', 'string', 32);
shp_boundaries.add_field('boundary', 'string', 255);
shp_boundaries.add_field('admin_level', 'string', 255);

var csv_file = Osmium.Output.CSV.open("./rels.csv");

var node_tags = {
    place: { village: 'villaget', city: 'city', town: 'town'} //,
    //shop: { supermarket: 'supermarket' }
}

Osmium.Callbacks.init = function() {
    print("Init");
}
Osmium.Callbacks.node = function() {
    for (var key in this.tags) {
        if (node_tags[key]) {
            var type = node_tags[key][this.tags[key]];
            if (type) {
                shp_places.add(this.geom, { id: this.id, type: type, name: this.tags.name });
            }
        }
    }
}
Osmium.Callbacks.area = function() {
    if (this.tags.boundary) {
        shp_boundaries.add(this.geom, { id: this.id, type: this.tags.boundary, admin_level: this.tags.admin_level});
    }
}
Osmium.Callbacks.relation = function() {
   for (var key in this.members) {
      for (var key2 in this.members[key]) {
         if (key2=='role' && this.members[key].role=='admin_centre'){
            csv_file.print(this.id*2+1, this.members[key].ref, 
                           this.members[key].role, this.members[key].type);
         }
      }
   }
}
Osmium.Callbacks.end = function() {
    shp_places.close();
    shp_boundaries.close();
    csv_file.close();
    print("Done");
}
Ce scripte produit un fichier shape avec les polygones, un avec les noeuds et und fichier csv qui relie les uns aux autres par leurs identificateurs. Il tient compte du fait que osmjs assigne des pseudo-identificatuers aux polygones qu'il calcule avec la formule [2 * osm_id de la relation + 1. On charge ces trois fichers dans QGis. On crée une jointure des données csv avec la couche des noeuds et ensuite une jointure de la couche des polygones avec les données csv. La couche polygone a maintenant accès aux données des noeuds associés. Si on enregistre la couche polygone dans un ficher au format shape, ce fichier contiendra toutes les données et peut être utilisé avec mapnik / tilemill.