<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Cartographie on Mon Blogue</title>
    <link>https://blog.velocarte66.fr/fr/categories/cartographie/</link>
    <description>Recent content in Cartographie on Mon Blogue</description>
    <image>
      <title>Mon Blogue</title>
      <url>https://blog.velocarte66.fr/images/papermod-cover.png</url>
      <link>https://blog.velocarte66.fr/images/papermod-cover.png</link>
    </image>
    <generator>Hugo</generator>
    <language>fr</language>
    <lastBuildDate>Mon, 01 Dec 2014 18:15:54 +0100</lastBuildDate>
    <atom:link href="https://blog.velocarte66.fr/fr/categories/cartographie/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Afficher des traces GPX avec Drupal 7 et Leaflet</title>
      <link>https://blog.velocarte66.fr/fr/posts/afficher-des-traces-gpx-avec-drupal-7-et-leaflet/</link>
      <pubDate>Mon, 01 Dec 2014 18:15:54 +0100</pubDate>
      <guid>https://blog.velocarte66.fr/fr/posts/afficher-des-traces-gpx-avec-drupal-7-et-leaflet/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://blog.velocarte66.fr/files/drupal-leaflet-01.jpg&#34;   /&gt;Le module Leaflet pour Drupal 7 permet de créer des cartes interactives et d&amp;rsquo;afficher des objets géographiques (points, courbes, polygones) sur ces cartes.  Je décris ici une méthode simple pour afficher une ou plusieurs traces GPX et des points d’intérêt sur une carte OpenStreetMap.&lt;/p&gt;
&lt;p&gt;Pour présenter plusieurs objets géographiques sur une carte, on utilise&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;des nœuds qui possedent chacun un champ du type &lt;em&gt;geofield&lt;/em&gt; et&lt;/li&gt;
&lt;li&gt;une vue qui utilise le format &lt;em&gt;Carte Leaflet&lt;/em&gt; et pour afficher ces nœuds sur une carte&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour les détails, consultez la &lt;a href=&#34;https://www.drupal.org/node/1645460&#34;&gt;documentation du module sur drupal.org&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>11 avril 2014 à Perpignan : Cartopartie dans le cadre de semaine de l&#39;environnement</title>
      <link>https://blog.velocarte66.fr/fr/posts/11-avril-2014-a-perpignan-cartopartie-dans-le-cadre-de-semaine-de-lenvironnement/</link>
      <pubDate>Fri, 07 Mar 2014 09:01:11 +0100</pubDate>
      <guid>https://blog.velocarte66.fr/fr/posts/11-avril-2014-a-perpignan-cartopartie-dans-le-cadre-de-semaine-de-lenvironnement/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;
&lt;img src=&#39;https://blog.velocarte66.fr/files/imagepicker/1/20140305-cartopartie.jpg&#39; alt=&#39;Bild&#39; style=&#34;float: left&#34; class=&#34;imgp_img&#34; /&gt;


&lt;/div&gt;</description>
    </item>
    <item>
      <title>Les perles de Google Maps - la rue du Colonel de l&#39;Ouillat</title>
      <link>https://blog.velocarte66.fr/fr/posts/les-perles-de-google-maps-la-rue-du-colonel-de-louillat/</link>
      <pubDate>Mon, 24 Feb 2014 22:53:03 +0100</pubDate>
      <guid>https://blog.velocarte66.fr/fr/posts/les-perles-de-google-maps-la-rue-du-colonel-de-louillat/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;
&lt;iframe width=&#34;630&#34; height=&#34;450&#34; frameborder=&#34;0&#34; scrolling=&#34;no&#34; marginheight=&#34;0&#34; marginwidth=&#34;0&#34; src=&#34;https://maps.google.com/maps?q=42.676536,2.907377&amp;amp;num=1&amp;amp;ie=UTF8&amp;amp;ll=42.676818,2.90745&amp;amp;spn=0.001067,0.002642&amp;amp;t=m&amp;amp;z=21&amp;amp;output=embed&#34;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href=&#34;https://maps.google.com/maps?q=42.676536,2.907377&amp;amp;num=1&amp;amp;ie=UTF8&amp;amp;ll=42.676818,2.90745&amp;amp;spn=0.001067,0.002642&amp;amp;t=m&amp;amp;z=14&amp;amp;source=embed&#34; style=&#34;color:#0000FF;text-align:left&#34;&gt;Agrandir le plan&lt;/a&gt;&lt;/small&gt;


&lt;/div&gt;</description>
    </item>
    <item>
      <title>OSM: Utiliser les attributs de l&#39;admin_centre pour rendre des limites administratives</title>
      <link>https://blog.velocarte66.fr/fr/posts/osm-utiliser-les-attributs-de-ladmin_centre-pour-rendre-des-limites-administratives/</link>
      <pubDate>Fri, 04 Oct 2013 18:51:52 +0200</pubDate>
      <guid>https://blog.velocarte66.fr/fr/posts/osm-utiliser-les-attributs-de-ladmin_centre-pour-rendre-des-limites-administratives/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;
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 &lt;code&gt;place=*&lt;/code&gt; qui est membre de la relation du type &lt;code&gt;boundary&lt;/code&gt; avec le rôle &lt;code&gt;admin_centre&lt;/code&gt;. Si on a besoin de ces informations, comme par exemple &lt;em&gt;population&lt;/em&gt; ou &lt;em&gt;name:xx&lt;/em&gt;, 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&#39;accéder aux informations du noeud &lt;code&gt;admin_centre&lt;/code&gt; à partir du polygone. Cet article présente des solutions pour les bases de données PostGis crées avec &lt;code&gt;osm2pgsql&lt;/code&gt; et les fichiers shape crées avec osmium.
&lt;!--break--&gt;
&lt;h1&gt;PostGis / osm2pgsql&lt;/h1&gt;
osm2pgsql reporte bien les attributs des chemins «outer» sur le polygone qu&#39;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 &lt;code&gt;&amp;lt;prefix&amp;gt;_rels&lt;/code&gt; qui contient pour chaque relation ses attributs et ses membres avec le rôle et l&#39;id, mais sous une forme qui n&#39;est pas directement exploitable avec SQL. Un exemple :
&lt;code&gt;&lt;pre&gt;
psql -d osm -c  &#34;select members from planet_osm_rels\
                     where hstore(tags)-&gt;&#39;name&#39;=&#39;Corneilla-la-Rivière&#39;;&#34;
                               members
----------------------------------------------------------------------------
{w121772197,outer,w100006391,outer,w121772204,outer,n287557758,admin_centre}
&lt;/pre&gt;&lt;/code&gt;
On trouve les membres d&#39;une relation dans un array, deux valeurs par membre, le type et l&#39;identificateur du membre et son rôle. Une petite fonction SQL permet d&#39;acceder à l&#39;identificateur de l&#39;admin_centre :
&lt;code&gt;&lt;pre&gt;
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]=&#39;admin_centre&#39;;$function$
&lt;/pre&gt;&lt;/code&gt;
Cette fonction permet de faire des requêtes sur les relations des limites administratives avec les attributs de leurs centres administratifs :
&lt;code&gt;&lt;pre&gt;
select poly.name, point.name, point.&#34;name:ca&#34;, point.population 
   from planet_osm_rels r, 
        planet_osm_polygon poly, 
        planet_osm_point point 
   where poly.admin_level=&#39;8&#39; 
         and admin_centre(r.members) = point.osm_id 
         and r.id = -poly.osm_id ;
&lt;/pre&gt;&lt;/code&gt;
Si ce type de requête n&#39;est pas suffisamment efficace on peut copier les attributs des noeuds sur les polygones ou bien créer un table de références :
&lt;code&gt;&lt;pre&gt;
create table admin_rel 
   as select -id as rel_id,
             admin_centre(members) as admin_centre
        from planet_osm_rels 
        where hstore(tags)-&gt;&#39;boundary&#39;=&#39;administrative&#39; and 
              hstore(tags)-&gt;&#39;admin_level&#39;  in (&#39;8&#39;,&#39;6&#39;,&#39;4&#39;);
&lt;/pre&gt;&lt;/code&gt;
&lt;h1&gt;fichiers «shape»&lt;/h1&gt;
On utilise pour cela l&#39;outil &lt;code&gt;osmjs&lt;/code&gt; et QGis. &lt;code&gt;osmjs&lt;/code&gt; basé sur la bibliothèque &lt;code&gt;osmium&lt;/code&gt; permet d&#39;extraire des objets d&#39;un fichier osm sous forme de fichier «shape». Comme &lt;code&gt;osm2pgsql&lt;/code&gt;, cet outil crée des polygones pour les relations «boundary» mais ne tient pas compte du rôle &lt;code&gt;admin_centre&lt;/code&gt;. Par contre il est possible de produire un fichier csv qui contient les identificateurs des polygones et de leurs noeuds &lt;code&gt;admin_centre&lt;/code&gt; :
&lt;code&gt;&lt;pre&gt;
/*
  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(&#39;./places&#39;, &#39;point&#39;);
shp_places.add_field(&#39;id&#39;, &#39;string&#39;, 12);
shp_places.add_field(&#39;type&#39;, &#39;string&#39;, 32);
shp_places.add_field(&#39;name&#39;, &#39;string&#39;, 32);

var shp_boundaries = Osmium.Output.Shapefile.open(&#39;./boundaries&#39;, &#39;polygon&#39;);
shp_boundaries.add_field(&#39;id&#39;, &#39;integer&#39;, 10);
shp_boundaries.add_field(&#39;type&#39;, &#39;string&#39;, 32);
shp_boundaries.add_field(&#39;boundary&#39;, &#39;string&#39;, 255);
shp_boundaries.add_field(&#39;admin_level&#39;, &#39;string&#39;, 255);

var csv_file = Osmium.Output.CSV.open(&#34;./rels.csv&#34;);

var node_tags = {
    place: { village: &#39;villaget&#39;, city: &#39;city&#39;, town: &#39;town&#39;} //,
    //shop: { supermarket: &#39;supermarket&#39; }
}

Osmium.Callbacks.init = function() {
    print(&#34;Init&#34;);
}
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==&#39;role&#39; &amp;&amp; this.members[key].role==&#39;admin_centre&#39;){
            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(&#34;Done&#34;);
}
&lt;/pre&gt;&lt;/code&gt;
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 &lt;code&gt;osmjs&lt;/code&gt; assigne des pseudo-identificatuers aux polygones qu&#39;il calcule avec la formule &lt;code&gt;[2 * osm_id de la relation + 1&lt;/code&gt;.

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.


&lt;/div&gt;</description>
    </item>
    <item>
      <title>Version V027 du scripte rel2gpx.pl</title>
      <link>https://blog.velocarte66.fr/fr/posts/version-v027-du-scripte-rel2gpxpl/</link>
      <pubDate>Mon, 30 Sep 2013 18:58:54 +0200</pubDate>
      <guid>https://blog.velocarte66.fr/fr/posts/version-v027-du-scripte-rel2gpxpl/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;
Cette version tient compte de deux patchs fournis par A.Tille.


&lt;a href=&#34;https://blog.velocarte66.fr/?q=de/node/170&#34;&gt;téléchargement&lt;/a&gt;


&lt;/div&gt;</description>
    </item>
    <item>
      <title>Carte cycliste des environs de Perpignan </title>
      <link>https://blog.velocarte66.fr/fr/posts/carte-cycliste-des-environs-de-perpignan/</link>
      <pubDate>Fri, 14 Dec 2012 12:27:00 +0100</pubDate>
      <guid>https://blog.velocarte66.fr/fr/posts/carte-cycliste-des-environs-de-perpignan/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;

&lt;a href=&#34;https://velocarte66.fr&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;https://blog.velocarte66.fr/files/images/2013-01-30-screenshot-velocarte.jpg&#34; class=&#34;imgp_img&#34; alt=&#34;&#34; &gt;&lt;/a&gt;
&lt;div style=&#34;clear:left&#34;&gt;&lt;/div&gt;
Je viens de mettre en ligne une carte &#34;cycliste&#34; de Perpignan et ses environs. La carte est accessible par ce lien: &lt;a href=&#34;https://velocarte66.fr&#34; target=&#34;_blank&#34;&gt;velocarte66.fr&lt;/a&gt;. Il s&#39;agit d&#39;une première version qui doit surtout servir à recueillir des commentaires, critiques et propositions d&#39;améliorations. 

Vous pouvez laisser un commentaire en utilisant le lien en bas de cette page ou en envoyant un mail par le lien &#34;contact&#34; dans  la légende de la carte. 

Cette carte est créée à partir des données du Projet &lt;a href=&#34;https://www.openstreetmap.org/&#34;  target=&#34;_blank&#34;&gt;OpenStreetMap (OSM)&lt;/a&gt;. Elle ne présente donc que les aménagements cyclistes qui sont présents dans la base de données OpenStreetMap.

Si vous constatez une erreur ou des données manquantes, vous pouvez soit les saisir par l&#39;intermediaire du site &lt;a href=&#34;https://www.openstreetmap.org/&#34;&gt;OpenStreetMap (onglet &#34;modifier&#34;)&lt;/a&gt; ou un éditeur OSM tel que &lt;a href=&#34;https://josm.openstreetmap.de/&#34;  target=&#34;_blank&#34;&gt;JOSM&lt;/a&gt;, soit me le signaler par un commentaire ou un mail, ou bien utiliser l&#39;outil &lt;a href=&#34;https://openstreetbugs.schokokeks.org/?lon=2.83208&amp;lat=42.70477&amp;zoom=12&amp;layers=B0&#34; target=&#34;_blank&#34;&gt;OpenStreetBugs&lt;/a&gt;.


&lt;/div&gt;</description>
    </item>
    <item>
      <title>Interview video: Christian Quest parle d&#39;Openstreetmap, le wikipedia de la cartographie... </title>
      <link>https://blog.velocarte66.fr/fr/posts/interview-video-christian-quest-parle-dopenstreetmap-le-wikipedia-de-la-cartographie/</link>
      <pubDate>Fri, 11 May 2012 10:58:36 +0200</pubDate>
      <guid>https://blog.velocarte66.fr/fr/posts/interview-video-christian-quest-parle-dopenstreetmap-le-wikipedia-de-la-cartographie/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;

&lt;iframe src=&#34;https://player.vimeo.com/video/41755755?color=ffffff&#34; width=&#34;400&#34; height=&#34;300&#34; frameborder=&#34;0&#34; webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;&lt;a href=&#39;https://blog.velocarte66.fr/files/imagepicker/1/289416152_960.jpg&#39; title=&#39;&#39; &gt;


&lt;/div&gt;</description>
    </item>
    <item>
      <title>Script Perl pour créer un fichier GPX à partir d&#39;une relation OSM </title>
      <link>https://blog.velocarte66.fr/fr/posts/script-perl-pour-creer-un-fichier-gpx-a-partir-dune-relation-osm/</link>
      <pubDate>Mon, 06 Dec 2010 09:16:50 +0100</pubDate>
      <guid>https://blog.velocarte66.fr/fr/posts/script-perl-pour-creer-un-fichier-gpx-a-partir-dune-relation-osm/</guid>
      <description>&lt;div class=&#39;drupal-import&#39;&gt;
La base de données OSM contient de nombreux chemins de randonnée et itinéraires cyclables sous form de relations. Sur la base de ce type de relation, ce script Perl crée un fichier GPX qui peut être utilisé avec des outils GIS et avec les appareils GPS. En outre, ce script permet d&#39;analyser une relation pour détecter des anomalies dans le tracé.
&lt;!--break--&gt;
En créant un fichier GPX, le script essaye de créer des segments d&#39;une longueur maximale et de minimiser les écarts entre segments isolés. Il tient compte des rond-points et les divise pour créer des segments de trace GPX continus.

Sur demande, le script sort des statistiques sur les segments de la relation, leur longueur et l&#39;écart entre les segments. 

Optionnellement, le script analyse le tracé de la relation et donne des indice sur des anomalies éventuelles, tel que l&#39;existence de branchements, de doublons etc.

Il est possible de créer un ficher HTML avec les Les informations statistiques et le résultat de l&#39;analyse. Ce fichier contient des liens vers l&#39;outil Josm, qui permettent, à l&#39;aide du plugin remotecontrol, de charger les objets concernées dan Josm.

&lt;strong&gt;Installation&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Conditions requises:
&lt;ul&gt;&lt;li&gt;une installation Perl sous Linux ou Windows / Cygwin (MAC non testé). ActivePerl actuellement un problème avec les fichiers OSM non comprimés.&lt;/li&gt;
&lt;li&gt;modules Perl: LWP::Simple, IO::Scalar, Math::Trig, Locale::Maketex&lt;/i&gt;
&lt;li&gt;module OSM::osm.pm. Ce module peut être téléchargé sur https://wiki.openstreetmap.org/wiki/Osm.pm et doit être enregistré dans un répertoire OSM dans un des répertoires du chemin @INC de l&#39;installation Perl. Une liste de ces repertoires peut être obtenue avec la commande &#34;perl -V&#34;. Il est aussi possible de mettre le module dans un répertoire quelconque dans l&#39;espace utilisateur et que l&#39;on indique à l&#39;interpréteur Perl avec l&#39;option &lt;code&gt;-I&lt;/code&gt;.&lt;/i&gt;&lt;/ul&gt;&lt;/i&gt;
&lt;li&gt;télécharger le fichier joint à cet article et le décomprimer.&lt;/li&gt;
&lt;li&gt;invoquer le script avec &lt;code&gt;perl &lt;répertoire&gt;/rel2gpx.pl&lt;/code&gt; ou simplement &lt;code&gt;&lt;répertoire&gt;/rel2gpx.pl&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;strong&gt;Utilisation&lt;/strong&gt;
invoquer le script sans options pour avoir une liste des options possibles.
&lt;br&gt;&lt;br&gt;&lt;strong&gt;Téléchargement&lt;/strong&gt;&lt;br&gt;
&lt;a href=&#34;https://blog.velocarte66.fr/files/tools/rel2gpx_v023_4.tgz&#34;&gt;rel2gpx_v024.tgz&lt;/a&gt;&lt;br&gt;


&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
