[OSM-dev-fr] Styles Mapnik gérés par CartoCSS - question existentielle

sly (sylvain letuffe) liste at letuffe.org
Ven 21 Déc 11:52:37 GMT 2012


Bonjour,

Résumé rapide : Je suis en train de mettre en oeuvre sur les serveurs de 
l'association osm-france un nouveau style de rendu sur la terre dont la cible 
est le contributeur openstreetmap pour qu'il puisse voir : 
- tout ou presque ce qu'il y a dans la base (tout objet dont les tags sont 
acceptés sur le wiki)
- rapidement ses propre modifs
- créé collaborativement si quelqu'un veut m'aider

Son petit nom :
2u : acronyme de "Ugly and Usefull"
(J'aurais aimé l'appelé 4u, mais je n'ai pas trouvé les 2 u qui me manque)

Voilà pour le background, maintenant je me pose la question de la technologie 
à utiliser.
Le moteur de rendu sera mapnik, et la base : osm2pgsql. Plutôt que de partir 
de rien, je préfère reprendre le style existant sur osm.org (ou un autre, 
tant qu'il est déjà bien avancé)

Je me suis donc naturellement tourné vers : 
https://github.com/gravitystorm/openstreetmap-carto

Une reprise des styles actuels de osm.org qui sont au format xml vers le 
format CartoCSS
La pub est alléchante :
- quasi identique à l'actuel sur osm.org
- joli format plus facile à écrire proche du CSS
- moins de redondance dans le style
- une interface graphique clic-clic pour faire ses modifs
- un générateur simple pour passer de cartoCSS à xml (dont mapnik a toujours 
besoin)

Que demande le peuple ? un enfant s'en servirait dirait presque la pub, idéal 
donc pour se partager le travail sans être informaticien et que de temps 
gagné !
J'ai donc sauté dans la fosse (aux lions) de cette alléchante perspective, 
mais voilà que la réalité semble rattraper quelque peu la fiction, et mes 4 
heures à étudier la question et tester la solution dans tous les sens m'ont 
amené à douté de mon choix.

J'en appel donc à ceux qui l'utilise, ceux qui utilisent autre chose, ceux qui 
sont restés au bon vieux format xml d'avant, vous en pensez quoi ?

J'ai aussi sans doute du rater plein de trucs, et si vous avez un conseil, je 
suis preneur, voilà mon pessimiste résumé  :

_gain de temps_
* Je connais déjà pas mal le format xml et ça m'obligerais à apprendre un 
nouveau format
* Le style osm.org "à l'ancienne" en fichier xml a tout de même bien évolué en 
4 ans, et les fichiers sont maintenant séparés par thème, la redondance est 
pas mal évitée par les xml entities et quelques tests m'ont montrés que 
c'était tout à fait possible de continuer à travailler directement sur eux

_fiabilité_
* Le style xml est ancien, éprouvé, et bien testé

_pérennité_
* Ça, la pub ne le dit pas, mais cartoCSS ne permet pas toute la richesse du 
format xml (il ne manque pas grand chose toutefois)
* lorsque mapnik évolue, il faut que cartoCSS suive, sinon, on ne peut pas 
profiter des nouvelles fonctionnalités
* Si cartoCSS est abandonné, je suis bloqué

_facilité d'utilisation_
* Finalement, un enfant ne s'en servirait peut-être pas, le truc qui passe de 
cartoCSS à xml est un obscure (pour moi) bidule en Node.js dont je n'ai pas 
réussi à trouver de paquet debian et bourré de dépendances
(ma philosophie à 2 francs CFA : quand pas de paquet debian maintenu, méfiance 
accrue)
* Le truc clic-clic qu'il est trop beau est bien gentil, mais il faut quand 
même monter une base postgresql+osm2pgsql donc pour le "accès à tout le 
monde" c'est pas non plus la panacée
* Le TileMill (le truc clic-clic) ne tourne que sur Ubuntu, et pas sur toutes 
les versions, et avec un installateur louche qui va chercher des trucs et des 
bidules un peu partout qui ne sont pas des les repos de la distrib, ce qui 
amène à ne plus pouvoir, ou plus difficilement, traiter le style sur le 
serveur directement

Bref de chez bref, ça fait, il me semble, un sacré potentiel à emmerde, pour 
finalement gagner quoi ? un peu de confort à écrire des styles.

Le format du fichier .mml est symptomatique d'un mode de pensé, selon moi 
tordu, des développeurs hypes et modernes qui adorent toucher toutes les 
technos du moment et délaisseront le projet dans 3 ans par manque d'intérêt.

C'est au format JSON, le but est de rendre plus lisible le même fichier en xml 
de mapnik, j'ai lu les deux [1] et [2], et je ne vois pas en quoi le json 
(technologie que j'exècre par sa volonté de supplanter xml sans rien apporter 
de probant) apporte quelque chose de vraiment incroyable, par contre, ce que 
je vois bien, c'est que ça fait un nouveau format incompatible et une 
nouvelle sur-couche qu'il faudra ré-écrire en xml si on change d'avis.

A votre avis ? Je suis tenté aussi par MapCSS et Caskadenik qui me semblent se 
situer à mi-chemin.

[1]
"Layer": [
    {
      "geometry": "polygon",
      "extent": [
        -179.99999692067183,
        -85.051,
        179.99999692067183,
        83.66933299999998
      ],
      "id": "world",
      "class": "",
      "Datasource": {
        "file": "/usr/local/share/mapnik/shape-resources/world_boundaries/shoreline_300.shp"
      },
      "srs-name": "900913",
      "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
      "advanced": {},
      "name": "world"
    },


[2] <Layer name="seas" status="on" srs="+proj=merc +a=6378137 +b=6378137 
+lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgr
ids=@null +no_defs +over">
        <StyleName>seas</StyleName>
        <Datasource>
                <Parameter name="type">shape</Parameter>
                <Parameter 
name="file">/home/sites/maps.refuges.info/ressources/world_boundaries/world-seas/water_polygons</Parameter>
        </Datasource>
      <Parameter 
name="extent">-20037508,-19929239,20037508,19929239</Parameter>
</Layer>


-- 
sly, DWG member since 11/2012
Coordinateur du groupe [ga]
http://wiki.openstreetmap.org/wiki/User:Sletuffe



Plus d'informations sur la liste de diffusion dev-fr