De toute façon, place=* devrait être déprécié sur les noeuds, et déplacé
sur la relation appropriées (en même temps que les indications sur la
population).

- Ces noeuds ne sont encore là que pour compatibilité avec les rendus quand
les communes n'avaient pas encore leur frontières définies.
- La relation communale (niveau 8) devrait être nommée
"Cherbourg-Octeville" avec place=town
- Au niveau 9 des communes associées, ou au niveau 10 des anciennes
communes, on peut distinguer "Cherbourg" et Octeville (avec place=suburb si
on veut).
- Au niveau 11 on a encore la possibilité de créer des quartiers de chaque
commune si on est dans le cas des communes nouvelles (avec des communes
déléguées) ou celui des communes associées.
- Il ne resterait alors qu'un noeud référencé avec le rôle admin_center, et
dont le nom devrait être le plus local possible, donc "Cherbourg", voire
"Mairie" ou "Hôtel de ville"

Les moteurs de rendus devraient ne pas utiliser ce nom s'ils veulent
afficher un nom de ville mais pas les frontières, en recherchant une
relation associée de type "boundary=administrative"+"admin_level=8"
référençant ce noeud par un rôle "admin_centre"; ils devraient même pouvoir
utiliser la relation directement sans noeud admin_centre, en utilisant
alors un centroïde calculé; ce membre admin_centre ne sert plus alors que
pour indiquer la position préférable pour afficher le libellé sans avoir à
le calculer, ni tomber par calcul complètement en dehors de frontières
concaves (comme pour L'Île-Saint-Denis, un cas où le calcul simple du
centroïde échoue et demanderait de chercher une ligne passant par ce point
pour prendre les deux premières intersections et prendre le point milieu ;
la ligne d'intersection peut être délicate à déterminer si la commune a
plusieurs parties exclavées : il faudrait alors prendre la zone fermée la
plus grande, sachant que ce n'est pas toujours la plus grande exclave où se
situe la ville ou le village le plus peuplé de la commune ou son
administration communale ; si on considère l'exclave la plus grande, ou
obtient en traçant une ligne horizontale parfois plusieurs paires de points
formant des segments alignés mais disjoints dans la surface : il faudrait
prendre le segment le plus long pour mieux placer le centroïde).

Un calcul de centroïde correct à partir d'un polygone ou multipolygone (ou
relation frontière) consiste donc à :
- identifier les anneaux externes (outer) : calcul un peu compliqué
- déterminer pour chaque anneau externe celui ayant une bounding box la
plus grande : pas compliqué
- prendre comme point d'appui le centre de cette bounding box.
- garder la liste de points d'intersections de la ligne horizontale passant
par le point d'appui avec TOUTES les frontières (internes ou externes peu
importe).
- on obtient une suite de paires de points (voir un point double si la
ligne passe par un sommet extrême touchant le haut ou le bas de la bounding
box; on élimine ces points doubles).
- parmi les paires de points successives formant des segments disjoints,
déterminer le segment le plus long
- utiliser le centre de ce dernier segment comme centroïde.

Si on avait généralisé ce genre de calcul, on n'aurait même pas besoin de
préciser les admin_center et des communes très concaves auraient leur
centroïde calculé dans un endroit approprié (et cela suffirait pour les
rendus à faible niveau de zoom ne représentant pas les frontières.


Le 5 juillet 2013 15:59, Francescu GAROBY <windu...@gmail.com> a écrit :

> Ta question, c'est de savoir si le node 'admin_centre' est placé sur ce
> qui était Cherbourg ou Octeville (avant la fusion) ? Ou de savoir si la
> valeur de 'place' est la bonne (là je confirme que non :
> Cherbourg-Octeville fait 38.000 habitants, donc ça devrait être
> 'place=town') ?
>
> Francescu
>
>
> Le 5 juillet 2013 15:40, Christian Quest <cqu...@openstreetmap.fr> a
> écrit :
>
> Cherbourg me pose un petit problème...
>>
>> Cherbourg et Octeville ont fusionné en 2000, donc la commune c'est
>> Cherboug-Octeville, elle a sa relation en admin_level=8 et un
>> admin_centre sur un nœud name=Cherbourg et place=suburb !
>>
>> Pour placer les noms de grandes villes, j'utilise les nœuds
>> place=city/town
>>
>> Y'a des locaux pour nous éclairer ?
>>
>> _______________________________________________
>> Talk-fr mailing list
>> Talk-fr@openstreetmap.org
>> http://lists.openstreetmap.org/listinfo/talk-fr
>>
>
>
>
> --
> Cordialement,
> Francescu GAROBY
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-fr
>
>
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à