[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