FR:Osmarender/Comment faire

From OpenStreetMap Wiki
Jump to navigation Jump to search
Le fonctionnement d'osmarender

Cette page explique comment récupérer des données OSM sur le web et comment les convertir en une image SVG via Osmarender.

Vous avez principalement besoin de:

  1. Un compte utilisateur chez openstreetmap.org
  2. Quelques fichiers qui décrivent le processus de conversion
  3. Au moins un des outils mentionnés ci-dessous qui effectuent la conversion elle-même
  4. Les données OSM de la zone dont vous voulez le rendu
  5. Une application qui affiche les images SVG, comme Firefox 1.5, Sodipodi ou Inkscape pour pouvoir jouir du résultat avec satisfaction :)


Téléchargez le logiciel

Osmarender n'est pas vraiment une application à télécharger en tant que telle. C'est plutôt un ensemble de fichiers qui permettent une transformation XSL avec divers outils. Récupérez l'ensemble des fichiers requis dans le dépôt Subversion, accessible via http://svn.openstreetmap.org/applications/rendering/osmarender/ .

Il y a deux façons de récupérer les fichiers d'Osmarender. Soit vous utilisez le programme subversion (voir Getting The Source pour les détails) ou vous téléchargez les fichiers un à un:

Cliquez avec le bouton droit de la souris sur chaque fichier et sauvegardez-les tous dans un même répertoire, par exemple c:\osm\. Vous avez besoin, au minimum, du:

  1. fichier des règles (rules file), appelé osm-map-features-z17.xml.
  2. et du fichier de style (style sheet file), appelé osmarender.xsl.

Si vous utilisez Linux ou Unix, vous pourriez avoir aussi besoin de:

  1. osmarender et
  2. les scripts shell pour xsltrans .

Téléchargez les données

Après avoir récupérer les fichiers mentionnés précédemment, vous aurez besoin des données OSM de la zone dont vous souhaitez le rendu. Pour cela, il faut les télécharger et les sauvegarder dans le même répertoire que les autres fichiers. Le nom du fichier des données doit être data.osm. Il y a plusieurs méthodes pour récupérer les données OSM:

  • Vous pouvez télécharger les données avec votre navigateur internet préféré. Cela peut prendre un certain temps, qui dépend de la taille de la zone à transférer et de la quantité d'éléments cartographiques s'y trouvant.
  1. Sur votre navigateur, entrez l'URL suivante tout en ajustant les coordonnées des limites de la zone qui vous intéresse: http://www.openstreetmap.org/api/0.6/map?bbox=-0.5,51.3,-0.4,51.4 Les coordonnées du carré ainsi délimité sont (coin ouest), (coin sud), (coin est), (coin nord). Les coordonnées au sud de l'équateur sont négatives, ainsi que les coordonnées à l'ouest de Greenwich. Vous pouvez retrouver ces quatre valeurs depuis la carte principale OSM en examinant l'URL généré par un clic sur le lien Permalink puis en copiant ce lien dans le dialogue 'download' (Ctrl-O) dans JOSM. L'URL ne contient que la localisation du centre de la vue et le niveau de zoom.
  2. Le téléchargement peut prendre un certain temps, donc soyez patient. À la fin, cliquez avec le bouton droit de la souris sur votre navigateur et choisissez »Code source de la page«
  3. Depuis le menu »Fichier«, choisissez »Enregistrer sous...«. Sauvegardez-le sous le nom data.osm dans le répertoire contenant déjà tous les autres fichiers, par exemple c:\osm\data.osm'
  • Si vous êtes déjà familier avec les éditeurs, vous pouvez même utiliser JOSM pour sauvegarder les données.
  1. Simplement sauvegardez les données téléchargées sous data.osm dans le répertoire contenant tous les autres fichiers
  2. Vous pouvez aussi sauvegarder les données sous un autre nom de fichier, mais vous devrez modifier la ligne data="file" en haut de la section du fichier des règles (rules file). Ou encore, sous les systèmes d'exploitations basés sur UNIX (Linux, BSD, UNIX, Mac OS X), vous pouvez créer un lien symbolique vers votre fichier en utilisant la commande "ln -s <existing filename> data.osm".

Lancer le rendu des données

Maintenant que tous les fichiers sont là, vous pouvez utiliser une des méthodes suivantes pour convertir les données du fichier OSM en un fichier image appelé map.svg.

Xalan

Xalan est une application Java utilisable en mode commande, donc vous aurez besoin au préalable du JDK ou du JRE de Sun. Vous pouvez ensuite passer aux étapes suivantes:

  1. Téléchargez et installez xalan depuis http://xml.apache.org/xalan-j/downloads.html
  2. Démarrez votre terminal favori. Par exemple, avec Windows, ouvrez le terminal MS-DOS 'cmd'
  3. allez dans le répertoire contenant tous les fichiers téléchargés
  4. Exécutez la commande suivante:
    c:\osm\>java -cp c:\path\to\xalan.jar org.apache.xalan.xslt.Process -in osm-map-features-z17.xml -out map.svg

XML starlet

  • Sur Debian GNU/Linux / Ubuntu:
  1. Si ce n'est pas encore le cas, installez XMLstarlet
    1. sur Debian GNU/Linux comme root en invoquant la commande :
      apt-get install xmlstarlet
    2. sur Ubuntu en invoquant la commande :
      sudo aptitude install xmlstarlet
  2. allez dans le répertoire contenant tous les fichiers téléchargés
  3. Lancez le rendu de carte (Le fichier de règles (rules file) osm-map-features-z17.xml peut être remplacé par une version personnalisée si vous désirez un rendu différent)
    1. avec osm-map-features-z17.xml, exécutez la commande suivante::
      xmlstarlet tr osmarender.xsl osm-map-features-z17.xml > map.svg
  • Avec Windows:
  1. Téléchargez le fichier win32-zip depuis ici
  2. Decompressez-le vers (par exemple) c:\xml
  3. Depuis le répertoire où vous avez installé Osmarender, exécutez la commande
    c:\xml\xml tr osmarender.xsl osm-map-features-z17.xml > map.svg
  4. Le fichier map.svg est créé dans le répertoire c:\xml
  • Sur Mac OS X:
  1. Installez XMLStarlet en invoquant la commande
    fink install xmlstarlet
  2. Exécutez la commande suivante:
    xml tr osmarender.xsl osm-map-features-z17.xml > map.svg

Notez que la commande est bien 'xml' et non 'xmlstarlet'.

MSXML

Pour les utilisateurs de Windows, Microsoft offre un analyseur XML / processeur XSLT appelé MSXML. NOTE: CET OUTIL NE FONCTIONNE PAS AVEC OSMARENDER 4, mais devrait fonctionner avec Osmarender 5 (les utilisateurs de Windows pourraient avoir à utiliser NXSLT2, voir ci-dessous)

  1. Téléchargez MSXML 6.0 ici et installez-le.
  2. Placez ensuite votre utilitaire de transformation (msxsl.exe) dans votre répertoire windows/system32, téléchargez-le depuis cette adresse
  3. Pour lancer la transformation dans une fenêtre DOS, allez dans le répertoire contenant tous les fichiers téléchargés
  4. Maintenant, lancez la commande suivante:
    msxsl osm-map-features-z17.xml -pi -o map.svg
  5. N'oubliez pas l'option -pi pour forcer l'utilisation d'un modèle de style externe. Autrement, il vous sera réclamé durant l'exécution de la commande.

NXSLT2

Cet utilitaire nécessite l'installation préalable du framework Microsoft NET2.

Puis installez NXSLT2 depuis le lien de téléchargement en bas à droite de la fenêtre concernée.

Une fois installé, une commande comme

nxslt2 osm-map-features-z17.xml -pi -o map.svg 

produira un fichier SVG depuis le fichier de donné spécifié dans standard.xml.

Des tests initiaux utilisant Osmarender4 semblent montrer que cet outil produit un fichier SVG correct.

xsltproc

  1. Sur Linux et Max OS X 10.4 (Tiger), xsltproc est en principe déjà installé. Si ce n'est pas le cas, utilisez les outils d'installation fournis avec votre distribution pour le faire. xsltproc fait partie de Libxslt, lui-même faisant partie de l'analyseur XML de GNOME.
  2. Ouvrez votre terminal préféré
  3. allez dans le répertoire contenant tous les fichiers précédemment téléchargés
  4. Maintenant, exécutez la commande suivante:
    xsltproc osmarender.xsl osm-map-features-z17.xml > map.svg
    Si vous utilisez xsltproc depuis un répertoire d'extraction d'osmarender4 du dépôt SVN, utilisez la commande suivante:
    xsltproc --path . --path ./symbols rules/standard.xml > map.svg

Il est même possible d'utiliser xsltproc avec Windows en installant Cygwin, une couche de compatibilité pour simuler-Unix. Sélectionnez simplement le paquet appelé libxslt dans l'installateur Cygwin.

Altova XMLSpy

  1. Ouvrez osm-map-features-z17.xml
  2. Pressez F10
  3. Attendez!
  4. Corrigez les erreurs dans le résultat (toutes mes stations de train ont deux attributs) avant de sauvegarder en ce-que-vous-voulez.svg

Visualisez l'image SVG

Après tous ces efforts, vous pourriez avoir envie d'ouvrir et de voir le fichier image map.svg.

Firefox

Firefox affichera la carte de manière très correcte. Ouvrez simplement le fichier map.svg directement dans Firefox. Les noms des rues ne sont pas affichés sur les versions antérieures à Firefox 2.0.

Microsoft Windows Internet Explorer avec Adobe SVG Viewer

Bon rendu de la carte à l'affichage. Lorsque que vous aurez ajusté la taille de l'image à votre goût, pressez maj + copie_d'écran pour capturer l'image à l'écran, puis collez-la dans votre éditeur d'images préféré.

Inkscape

Inkscape 0.42 et suivant affiche un très bon rendu final. Sur de petites cartes, vous pourriez avoir besoin de redimensionner les logos manuellement pour éviter qu'ils ne masquent trop la carte.

Vous pouvez exporter le résultat au format png (File -> Export Bitmap), vous aurez peut-être à modifier le réglage du DPI pour obtenir une image à la taille et à la résolution voulue.

Il est aussi possible d'exécuter inkscape à partir d'une ligne de commande pour une sortie vers un .png - utilisez inkscape -D -e output.png map.svg

Batik

La "rastérisation" (convertir une image vectorielle en image matricielle) avec Batik devrait aussi fonctionner correctement, mais obtenir les bons réglages de largeur, dpi, etc dans le fichier png final peut s'avérer laborieux.

librsvg2

rsvg de librsvg2 (librsvg2-bin sur certaines plateformes) produira de beaux pngs.

Adobe Illustrator

Illustrator CS supporte le format SVG et affichera les fichiers produits avec Osmarender. Cependant, même avec CS3, le nom des rues n'est pas rendu de manière satisfaisante (tous les caractères sont verticaux plutôt que de suivre un chemin) et l'ombrage entourant les voies de type 'residential' peut être décalé (NDT: cet ombrage a disparu sur les versions récentes d'Osmarender).

ImageMagick

ImageMagick est une collection d'outils de commandes en lignes pour modifier les fichiers d'image. Pour obtenir un rendu SVG vers n'importe quel autre format (image matricielle, par exemple), utilisez la commande "convert". Le paramètre "-density" ajuste la résolution en DPI de l'image de sortie, le paramètre "-scale" définit la taille en pixel de l'image de sortie. Si vous voulez que votre carte ait une largeur de 500px et une très grande qualité, vous pourrez essayer

convert -density 600 -scale 500 map.svg map.png

Cependant, il semble que ImageMagick ne puisse rendre les noms de rues actuellement.

Et maintenant?

Vous pouvez transférer une copie d'écran ou un export en bitmap de votre SVG vers ce wiki pour que tout le monde puisse le voir. Vous pourriez aussi lire la pages des trucs pour améliorer le résultat d'Osmarender.

Voir aussi

  • Osmabrowser, qui prétend fournir une interface graphique configurable pour Osmarender.
  • OSM@home qui exécute Osmarender pour toutes les villes anglaises, et affiche les résultats sur ce site web