Journal OpenStreetMap - Au dela des données : le rendu visuel

Posté par (page perso) .
18
30
avr.
2012

Bonjour à tous.

Ça faisait longtemps que je n'avais pas pris mon clavier pour tapoté de nouveau journaux, voila donc chose faite.
Ce weekend (oui, j'ai pris un jour de congé avant la fête du travail), je me suis amusé avec OpenStreetMap.
Attention, pas pour y rajouter des données, ça, je l'ai déjà fait, continue de le faire a l'occasion quand l'envie m'en prend (mon dernier "fait d'arme" étant le tracé correct de la seine dans paris et plusieurs lignes de bus de la RATP).

Non, comme je disais donc, j'ai passé quelques heures de mon weekend à essayer de générer une carte.

Ben oui, parce que c'est bien beau et gratifiant de voir ses modifications sur openstreetmap.org, mais pour être tout à fait franc, je déteste le rendu par défaut de OSM (le style de mapquest me convient mieux mais bon, bref la n'est pas la question).
Donc me voila sur ma toute nouvelle version d'ubuntu (aussi mise à jour depuis ce weekend) pour monter mon propre serveur de génération de carte.
Joie et félicité, il existe un paquage gis-osm de debian qu'on a aussi dans ubuntu. N'y une n'y deux, voila-t-y pas que j'installe ça à coup d'apt-get.

Quelques minutes plus tard, je commence a me plonger sur le tutorial de mise en place de Mapnik:
Donc, première étape : téléchargement des données OSM pour lesquelles je me limite à une région (vu la vitesse du download, il vaut mieux).

La deuxième étape est la création de la base de données postgresql destinée à recevoir ces données et les préparer pour Mapnik. Et là nouvelle déconvenue : la version de postgresql a évolué. Les fichiers me permettant de générer une base correcte avec postgis ne sont plus dans les répertoires indiqués … bref … On va rechercher les fichiers installés par les packages postgresql et postgis, et on arrive quand même à raccrocher les wagons.

Troisième étape : importation des données du fichier vers la base, avec l'utilisation du programme osm2pgsql. C'est à ce moment là que j'ai regretté d'avoir choisi l'ile de france comme région plutôt que la corse : c'est lent, ca fait ramer ma machine et mon vlc.

Enfin j'arrive à la fin de la mise en place de ma machine, je vais pouvoir lancer la génération d'une image représentant mon quartier !
Je telecharge les utilitaires mapnik fournis par OSM, et me lance dans la génération du fichier de style personnalisé.

Et patatra. L'horreur. Une erreur s'affiche sur la sortie standard de mon shell. Ça gueule sur une requête faite dans la base de données. Gros soupir, Google est mon ami. Enfin oui, mais non. Parce que là je viens d'apprendre que les version des softs fournis par ma distrib (et en premier lieu osm2pgsql) sont obsolètes par rapport aux derniers changements effectués dans OSM.
Bref, mon import de données est à refaire avec une nouvelle version d'osm2pgsql. Là, je pleure. Bref, mon petit programme, compilé par mes soins a partir des sources du svn recharge les données (toujours aussi lentement) en base.

Je relance mon script de génération de feuille de style, et miracle, ça marche.
Je continue avec le script de génération de l'image contenant la carte de la mon quartier, et youpla boum, j'ai bien un fichier image.png à jour.

Sauf que comme dit un peu plus haut …. c'est moche : Sur un fond de carte grisâtre, les bâtiments sont violacés, les rues de toutes les couleurs, allant du blanc cassé au rose chair, en passant par le jaune mayonnaise ou l'orange abricot.

Toujours plein de bonne volonté et, il faut le dire, de beaucoup de naïveté, j'ouvre alors le fichier de style osm.xml, pensant que ce fichier étant lisible, il sera facilement adaptable à ce que je veux. Bref, j'ouvre vim et … Là, je pleure (une deuxième fois). Je referme vim en soupirant.

Je vais voir le tutorial de Mapnik, qui malheureusement ignore superbement le modèle de OSM pour se baser sur un hello-world aussi impressionnant qu’intéressant …
Je tombe ensuite (non, je ne me suis pas fait mal), sur une page de blog contenant une feuille de style certes simpliste, mais qui correspondrait mieux à ce que je cherche, avant de me rendre compte que ce code est également obsolète.

Je cherche vainement un éditeur de fichier de style de mapnik, la seule information que me remonte mon moteur de recherche est un exécutable datant de 2008, dont la page a été supprimée depuis (styledit).

Finalement, je trouve le site maps.cloudmade.comqui fait à peu près ce que je veux, sauf que les style ne sont pas exportable sous quelque forme que ce soit.

Dépité je décide d'en rester là pour cette fois-ci. Il me reste a voir cette page wiki ou encore celle-ci qui pourrait être plus en ligne avec ce que je cherche.

Bref, s'amuser avec les données OSM, c'est pas si simple … Si quelqu'un veut me faire part de ses tuyaux, les commentaires sont là pour ça.

  • # TileMill

    Posté par . Évalué à 10.

    Ça, ça irait: http://mapbox.com/tilemill/ ?

    Depending on the time of day, the French go either way.

    • [^] # Re: TileMill

      Posté par (page perso) . Évalué à 2.

      C'est joli et a priori repond à ce que je cherche.
      Par contre, comme ils le disent , il semblerait que les styles pour la generation de carte ce soit un peu la jungle …
      Dommage.

      • [^] # Re: TileMill

        Posté par . Évalué à 6.

        Manquerait plus qu’il n’y ait qu’une manière de faire. Tu imagines la catastrophe!
        TileMill, ça ressemble à du CSS, say facile à prendre en main.

        Depending on the time of day, the French go either way.

    • [^] # Re: TileMill

      Posté par . Évalué à 0.

      Ça, ça irait: http://mapbox.com/tilemill/ ?

      Est-ce que ça fonctionne correctement sur les jeux de données un peu conséquents ?

      En appli desktop, j'avais déjà essayé maperitive, qui m'a bouffé mes 8go de RAM puis planté rien que sur le jeu Rhône-Alpes…

      • [^] # Re: TileMill

        Posté par . Évalué à 4.

        Honnêtement, je n’ai pas encore vraiment eu le temps de le tester, vu que le projet n’a pas encore démarré, mais de toute façon, ça sera sur un dataset pas très gros, donc je ne sais pas si mon avis aura un intérêt. Sorry.

        Depending on the time of day, the French go either way.

    • [^] # Re: TileMill

      Posté par . Évalué à 3.

      Ça semble bien TileMill… je vais regarder ça.

      De mon côté je cherchais également à faire du rendu de carte au format OSM.
      J'ai connu aussi la galère pour installer un serveur OSM, avec la création de base de données, les trucs qui ne fonctionnent pas etc
      http://help.openstreetmap.org/questions/4496/how-to-create-fantasyimaginary-maps-with-openstreetmap

      Pour résumer ce qui est dit dans ce fil, le plus simple à utiliser et customiser c'est Ceyx : https://wiki.openstreetmap.org/wiki/Ceyx

      Une carte imaginaire, dessinée avec Gimp en haut, rendue avec ceyx en bas et une mapCSS custom :
      http://anamnese.online.fr/site2/divers/monde_carte17.jpg
      La même chose avec le rendu par défaut mapnik (il manque qques éléments par rapport à la version du dessus) :
      http://anamnese.online.fr/site2/divers/monde_carte17b.jpg

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Stamen

    Posté par . Évalué à 3.

    Je ne sais pas si tu connais ça, mais comme rendus alternatifs, ça devrait t'intéresser :
    https://wiki.openstreetmap.org/wiki/Stamen

    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Bug reort

    Posté par (page perso) . Évalué à 2.

    Puis je te suggérer de faire un rapport de bug sur launchpad ? Non pas que ça corrige le problème, mais par principe, je pense que ne rien faire ne va rien corriger du tout.

    • [^] # Re: Bug reort

      Posté par (page perso) . Évalué à 1.

      En l'occurence, il n'y a pas de bug à proprement parler.
      D'un coté, j'utilise les outils fournis par ma distrib, de l'autre par les develeoppeurs en direct.

      Il se trouve juste que là, les mainteneurs de package sont en retard par rapport à la dernière version.
      C'est aussi de ma faute a vouloir mélanger un peu tout.

      • [^] # Re: Bug reort

        Posté par (page perso) . Évalué à 2.

        Bah, si tu as une bonne raison d'avoir une mise à jour, les developpeurs peuvent la faire.

        C'est le souci avec les services en lignes, mais ça peut se corriger.

  • # mapserver

    Posté par (page perso) . Évalué à 3.

    Tu as un très bon tuto sur la façon d'utiliser les données osm avec mapserver ici :
    http://trac.osgeo.org/mapserver/wiki/RenderingOsmDataUbuntu

    A noter le dépôt UbuntuGIS : http://trac.osgeo.org/ubuntugis/wiki

  • # Des styles Mapnik OSM à tester

    Posté par . Évalué à 1.

    Le site OSM est bien mais allez plutôt voir du côté du moteur de rendu de Mapnik pour votre besoin.
    Il vous propose de partager des styles OSM
    https://github.com/mapnik/mapnik/wiki/StyleShare
    Quand les styles ne sont pas pour Mapnik version 2 mais 0.7.x , voir la procédure de migration des styles
    https://github.com/mapnik/mapnik/wiki/Mapnik2

  • # Gramère

    Posté par . Évalué à 2.

    Ça faisait longtemps que je n'avais pas pris mon clavier pour tapoté

    Ça se voit.

    Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

  • # Un serveur de tuiles en moins de 2 heures chrono.

    Posté par (page perso) . Évalué à 5. Dernière modification le 02/05/12 à 19:43.

    Monter un serveur de tuile OpenStreetMap peut se faire en moins de 2 heures, y compris l'import d'une région.

    Installation basique d'Ubuntu 12.04 LTS
    Installation du dépot de Kai Krueger (Outils OSM à jour)
    $ add-apt-repository ppa:kakrueger/openstreetmap

    Install des 2 paquets essentiels et de leur dépendances.
    $ apt-get install osm2pgsql libapache2-mod-tile

    Les scripts de post install configure automatiquement une base postgresql pour mapnik et récupère les fichiers de données pour le rendu.
    Au pire, à la main, la création d'une base se fait avec la commande :
    $ DBOWNER=monlogin DBNAME=mapnik install-postgis-osm-db

    Récupération des données brutes d'OSM de sa région sur http://download.geofabrik.de/osm/europe/france/
    $ wget http://download.geofabrik.de/osm/europe/france/aquitaine.osm.pbf
    et import des données (1 heure sur un netbook Atom avec 1 Go de RAM…)
    $ osm2pgsql -d mapnik -s -C 300 --hstore-all aquitaine.osm.pbf

    Configuration du rendu de tuile.
    dans /etc/renderd.conf remplacer le "0.7" par "2.0" dans le chemin d'accès au greffons de mapnik2

    redémarrez renderd et apache, le rendu de tuile devrait fonctionner :)

    Pour consulter les tuiles à distance, dans /var/www/osm/slippymap.html remplacer le "localhost" de l'URL de votre serveur de tuile par son FQDN.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.