[OSM-dev-fr] Utilisation de la feuille de style openstreetmap-carto

Corentin Furet corentin.furet at crans.org
Sam 1 Mai 10:26:09 UTC 2021


Bonjour,


Suite aux discussions récentes sur talk-fr à propos de la non présence dans le 
rendu généraliste internationale de healthcare=laboratory (absence un peu 
dommage alors que c'est projet du mois de mai en France) je me suis penché sur 
le sujet de la création de tuiles pour essayer de proposer une MR à 
openstreetmap-carto (https://github.com/gravitystorm/openstreetmap-carto).
Néanmoins je bloque sur un élément "mystérieux" que je n'arrive pas à résoudre 
et je viens donc demander de l'aide.


J'ai mis en place le conteneur docker sur mon ordinateur 
(https://github.com/gravitystorm/openstreetmap-carto/blob/master/DOCKER.md) et 
tout fonctionne bien.
J'ai ensuite cherché à faire en sorte que les healthcare=laboratory soient 
rendues avec le symbole actuellement utilisé par iD (venant de fontawesome: 
https://fontawesome.com/icons/vial?style=solid, j'ai mis la version svg modifiée 
au format 14x14p comme le demande le projet openstreetmap-carto ici si vous 
voulez essayer et vous épargner le redimensionnement par Inkscape: 
https://owncloud.crans.org/s/K5GwdpE2X7kU2Fn)

J'ai ajouté cette icône dans symbols/amenity/laboratory.svg.

Puis j'ai modifié le fichier style/amenity-points.mss 
(https://github.com/gravitystorm/openstreetmap-carto/blob/master/style/amenity-points.mss) 
et j'ai ajouté après la déclaration d'icône du vétérinaire (l.607 du fichier 
original)
```
   [feature = 'healthcare_laboratory'][zoom >= 17] {
     marker-file: url('symbols/amenity/laboratory.svg');
     marker-fill: @health-color;
     marker-clip: false;
   }
```
Normalement cela doit afficher ce logo avec le même rouge que les pharmacies, 
dentistes, hôpitaux. (L'effet du «marker-clip: false» m'est inconnu mais vu 
qu'il est partout je ne pense pas que cela soit le problème.)

Et plus loin, dans la déclaration de ce qui doit être affiché et comment à coté 
du logo, c'était déjà présent donc je n'ai touché à rien (l. 2521 du fichier 
original)
```
   [feature = 'amenity_clinic'],
   [feature = 'amenity_pharmacy'],
   [feature = 'amenity_doctors'],
   [feature = 'amenity_dentist'],
   [feature = 'amenity_veterinary'],
   [feature = 'healthcare_alternative'],
   [feature = 'healthcare_audiologist'],
   [feature = 'healthcare_birthing_center'],
   [feature = 'healthcare_blood_bank'],
   [feature = 'healthcare_blood_donation'],
   [feature = 'healthcare_centre'],
   [feature = 'healthcare_clinic'],
   [feature = 'healthcare_dentist'],
   [feature = 'healthcare_dialysis'],
   [feature = 'healthcare_doctor'],
   [feature = 'healthcare_laboratory'],
   [feature = 'healthcare_midwife'],
   [feature = 'healthcare_occupational_therapist'],
   [feature = 'healthcare_optometrist'],
   [feature = 'healthcare_physiotherapist'],
   [feature = 'healthcare_podiatrist'],
   [feature = 'healthcare_psychotherapist'],
   [feature = 'healthcare_rehabilitation'],
   [feature = 'healthcare_speech_therapist'],
   [feature = 'healthcare_yes'] {
     [zoom >= 17] {
       text-name: "[name]";
       text-size: @standard-font-size;
       text-wrap-width: @standard-wrap-width;
       text-line-spacing: @standard-line-spacing-size;
       text-dy: 12;
       text-fill: @health-color;
       text-face-name: @standard-font;
       text-halo-radius: @standard-halo-radius;
       text-halo-fill: @standard-halo-fill;
     }
   }

Mais ces actions ne donnent aucune résultat. (Je précise que j'ai tenté de 
modifier le logo des pharmacies par ce nouveau logo et que cela fonctionne bien, 
donc mes changements sont bien pris en compte.)

Je me suis ensuite dit que bien que des healthcare=* soient déclarés dans la 
feuille de style aucun n'est affiché, même par un simple point, et donc que cela 
provient peut-être du fait que les points avec simplement healthcare=* ne sont 
pas chargés dans la base de données postgresql? (Je ne vois pas d'autres 
explications à ces lignes sans effet sinon...)

J'ai donc inspecté le fichier openstreetmap-carto.style utilisé par osm2pgsql 
(https://github.com/gravitystorm/openstreetmap-carto/blob/master/openstreetmap-carto.style) 
et j'ai remarqué qu'il n'y avait rien à propos des healthcare=*. J'ai donc 
ajouté la ligne suivante: (C'est totalement au nez, je n'ai pas trop d'idée de 
comment cela fonctionne)
```
node,way   healthcare   text         polygon
```
Puis j'ai rechargé la base de données (docker-compose up import), aucune erreur, 
mais toujours aucun rendu.


Je venais donc voir si quelqu'un ici aurait une idée sur l'origine du problème.


Question subsidiaire: le projet openstreetmap-carto est sous licence CC0 
(https://github.com/gravitystorm/openstreetmap-carto/blob/master/LICENSE.txt), 
par conséquent est-ce que cela pose problème de proposer d'utiliser et d'inclure 
une image sous licence CC-BY 4.0? (licence du projet fontawesome). Je ne vois 
aucune indication d'origine et/ou de licence supplémentaire pour les symboles 
donc je me demande un peu comment cela est géré dans le projet.


Merci d'avance,
Corentin




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