[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