<div dir="ltr">C'est limite, car comme Christian je pense qu'il y a bien aussi un "village" au sens OSM (population) et au sens physique (agglomération, panneaux, publicité, adresses...) pour la commune nouvelle. Ca mérite bien un noeud place=* ! Le placement du noeud en revanche est arbitraire (et n'a pas à être superposé avec celui du chef-lieu). On a bien 3 noms qui ont chacun leur existence.<div><br></div><div>Cela n'empêche pas du tout en revanche de mettre deux noeuds dans la relation de la commune nouvelle, un de rôle admin_centre mentionnant la commune déléguée chef-lieu, l'autre avec le rôle "label". C'est documenté depuis longtemps...</div><div><br></div><div>Note: un noeud place=* ne suffit pas à lui même à délimiter un lieu quel qu'il soit, on est toujours obligé de chercher un objet frontière séparé pour savoir jusqu'où s'étend la validité de ce nom. Les noeuds place=* sont un besoin historique, on pourrait même les supprimer tous ceux qui ont une frontière associée et dans ce cas plus besoin des rôles admin_centre et label non plus.</div><div>Au pire ne garder qu'un noueud label mais totalement anonyme (les noms sont dans la relation qui référence ce label uniquement pour le positionnement adéquat, si possible dans l'agglomération principle de la commune, mais ce n'est même pas le cas pour les autres entités de niveau supérieur où le label est seulement positionné dans la surface).</div><div><br></div><div>----</div><div><br></div><div>On pourrait tout à fait positionner automatiquement les labels sans rien mettre dans la base (aucun noeud nécessaire, pas même un "label") :</div><div><br></div><div>* prendre un objet frontière, déterminer sa bounding-box précise et placer un noeud au centre</div><div>* tracer une horizontale passant par ce noeud et déterminer les intersections avec la frontière pour former des paires de segments</div><div>* sélectionner le segment le plus long et garder le point médian</div><div>* tracer une vertical passant par ce noeud et et déterminer les intersections avec la frontière pour former des paires de segments</div><div>* sélectionner le segment le plus long et garder le point médian</div><div>* On peut recommencer plusieurs fois les coupures horizontales et verticales jusqu'à ce que le point reste dans la surface occupée par le label dont on a prédéterminé les dimensions selon la police et le style utilisé.</div><div>* Si un label ne peut pas être positionné exactement car il entraine une collision avec un autre label, on peut aussi regarder la place qui reste non occupée par cet autre label pour exclure la portion de segment occupé. Si un autre label occupe toute la place, on peut chercher à couper selon l'autre axe (sinon on n'affiche pas le label). L'idéal est que le rendu ne trace pas tout de suite les libellés mais les insère dans une liste permettant ensuite de l'éliminer de la liste pour céder sa place à un autre libellé à placer de façon plus "prioritaire" (capital=* de niveau inférieur, sinon population plus importante)<br></div><div><br></div><div>L'algo peut cependant échouer à trouver un seule placement (si on ignore les autres labels déjà positionnés) si dès le départ la ligne passant par le point au centre de la bounding box ne coupe aucune frontère: il faudra alors parcourir les "rings" *externes* de la frontière avec des bounding box distinctes, avant de tracer les lignes horizontales et verticales (et les faire couper toutes les frontières externes et internes dans cette bounding box).</div><div><br></div><div>Le résultat de ce placement serait meilleur que les actuels "centroïdes".<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">Le 14 juillet 2016 à 12:57, Stéphane Péneau <span dir="ltr"><<a href="mailto:stephane.peneau@wanadoo.fr" target="_blank">stephane.peneau@wanadoo.fr</a>></span> a écrit :<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Le 14/07/2016 à 11:22, Christian Quest a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Je ne pense pas qu'on soit dans "tagguer pour le rendu", c'est à dire utiliser de mauvais tags pour quelque chose apparaisse sur le rendu. On est ici dans un choix qui facilite le rendu et qui sépare bien les roles de chaque place=* dans la relation de la commune nouvelle.<br>
</blockquote>
<br></span>
On peut raisonner différemment :<br>
Si le rendu affichait correctement le nom de cette commune nouvelle, aurais-tu ajouté ce node "place" ?<br>
Je ne pense pas.<br>
Donc c'est bien "taguer pour le rendu".<br>
<br>
Les solutions que je vois sont des modifs sur le rendu :<br>
- Si l'admin-center d'une relation porte un tag name différent de celui de la relation, alors les 2 doivent être affichés.<br>
- Plus simple : gérer le tag label<div class="HOEnZb"><div class="h5"><br>
<br>
Stf<br>
<br>
_______________________________________________<br>
Talk-fr mailing list<br>
<a href="mailto:Talk-fr@openstreetmap.org" target="_blank">Talk-fr@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/talk-fr" rel="noreferrer" target="_blank">https://lists.openstreetmap.org/listinfo/talk-fr</a><br>
</div></div></blockquote></div><br></div>