Le 31 janvier 2012 17:48, Vincent de Chateau-Thierry
<v...@laposte.net> a écrit :
>
>> De : "Philippe Verdy"
>>
>> Entièrement d'accord. Y compris sur le "name" (et ses traductions) qui
>> doit alors remplacer celui de la relation quand les deux sont
>> présents.
>> (...)
>>
>> Juste une idée "comme ça" :
>>
>> (...)
>>
>> Une règle supplémentaire devrait être que cet objet de "type=label"
>> ...
>>
>> Un label objet de "type=label" ne devrait pas exister seul, sinon
>> c'est qu'il doit être d'un autre type plus descriptif (dans ce cas on
>> enlève son attribut "type=label" mais il faut indiquer le genre
>> d'objet qu'il désigne, avec d'autres attributs géographiques).
>>
>
> Avoir des lignes de placement pour du texte relève à 100 % du domaine de la 
> cartographie,
> autrement dit de la représentation des données, le fameux "rendu".
> OSM n'est pas une carte mais une base de données, a fortiori une base dont la 
> vocation
> est bien plus large que la représentation cartographique. Ça serait à mon 
> sens une dérive
> que de stocker ce type d'info dans la base, tout ça pour palier à une absence 
> de finesse
> dans les algos de placement des moteurs de rendu. Sans parler de la 
> multiplicité des
> lignes pour un même texte, tout ça pour anticiper les représentations à 
> différentes
> échelles (on y revient toujours :-) ).
>
> En revanche, modéliser, peut-être avec le fuzzy souligné par Ab_fab, les 
> limites floues,
> ça me paraît une vraie question pour la base de données. Aux moteurs de rendu 
> ensuite
> de s'en emparer, chacun son boulot.

Dans ce cas, on ne labelle plus rien d'autre que les surfaces (qui par
elles-même indiquent les tolérances de placement). Pourtant, les
labels ont une direction préférée. Sans aucune indication dans la
base, on ne peut que les centrer sur un point et pas les dimensionner
du tout.

L'idée des limites floues (fuzzy) est bonne: on continue à modéliser
une surface, donc une géométrie, même avec un tracé imprécis et une
résolution faible. Mentionner ces limites comme floues évite de les
dessiner explicitement dans le moteur de rendu, mais suffit à indiquer
la zone dans laquelle on suggère de placer le label (qui devrait
"recouvrir" proportionellement toute cette zone, quitte à espacer les
lettres et agrandir les polices utilisées).

Mais comment indiquer sa direction, par exemple pour les massifs
montagneux, les caps et pointes de terres, les presqu'îles, les baies
maritimes (souvent contenant des "sous-baies" ; l'idéal serait
d'indiquer la ligne centrale d'approche dans la baie), ou des
désignations locales (culturelles mais non administratives) ? Sans
aucune direction, tous nos labels sont horizontaux, rien ne les
distingue vraiment, et un moteur ne sait pas du tout comment faire.

Si on n'indique que la surface avec une limite floue, le contour fermé
n'a plus de direction (le contour n'est pas nécessairement fortement
convexe, il peut être même ramifié, comme les rivières, sans pour
autant qu'on ait a désigner toutes les petites ramifications, ce qui
justifie d'afficher alors plusieurs fois le label sur une carte, sur
les ramifications principales) ; alors qu'un trait de placement (le
"noyau" squelettique de la surface désignée par ce label) suffit à
régler le problème, comme on le fait sur les rivières (en indiquant le
cours central, en plus des rives; quand les rives sont représentables,
le moteur les dessine et les remplit, mais ne dessine plus le trait du
cours central, mais l'utilise pour positionner correctement le nom du
cours d'eau, et aussi pour indiquer son sens d'écoulement d'amont en
aval, bien qu'il suffirait seulement de mentionner le point source et
celui d'embouchure ou de confluent).

Il existe des algorithmes pour calculer le noyau squelettique d'une
surface connexe définie par son contour polygonal (le noyau est un
ensemble de courbes interconnectées, inclues totalement dans la
surface ferlée par le contour), mais avec toutes les irrégularités des
surfaces complexes (comme les côtes par exemple, mais aussi les
rivières, on obtiendrait un squelette contenant de très nombreuses
ramifications de longueurs très différentes et pas de réelle utilité à
labelliser toutes ces irrégularités quand la ramification principale
suffit largement, étant donnée le lettrage employé le long de cette
ramification).

Noter aussi que la délimitation entre un cours d'eau et son affluent
est une limite floue alors que les rives ne le sont pas. En pratique
ça veut dire créer un segment "flou" (à masquer, donc marqué comme
"fuzzy") et l'inclure comme membre du multipolygone définissant les
rives de chaque cours ou affluent.

Comme alors chaque cours est entièrement défini par une courbe fermée,
il est possible d'en calculer automatiquement un squelette (à
condition de savoir éliminer les fausses ramifications créées
simplement par des variations de largeur ou de petites criques), ce
qui alors rendrait caduque l'indication du cours "central" avec les
"main_stream" et "side_stream" (des lignes juste estimées à la main,
"à vue de nez", sauf quand il s'agit d'une frontière administrative
qui souvent a omis d'être modifiée alors que le cours d'eau s'est
déplacé, raison de plus pour ne partager les contours administratifs
avec aucun autre objet topographique...) .

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à