Cependant il y a un autre cas où le bogue ne vient pas directement du
moteur de rendu, mais de la façon qu'a la base OSM de répondre à une
demande de chargement des données dans une zone rectangulaires :

La base OSM ne retourne pas toujours non plus les ways qui traversent
le rectangle mais sans y avoir aucun nœud dans ce rectangle. On peut
résoudre en partie le problème en demandant à télécharger des données
sur une zone rectangle qui déborde un peu le cadre réellement voulu.
Mais cette extension n'est pas toujours suffisante pour y trouver au
moins un nœud.

Hors, les moteurs de rendu procèdent ainsi pour connaître les données
à afficher dans un rectangle. Mapnik semble demander les données
couvrant toutes les 8 tuiles voisines du même niveau de zoom, ce qui
ne suffit pas toujours non plus !

Bref, pour de tels cas, il n'y a pas d'autres moyens que d'affiner les
tracés en ajoutant des nœuds, c'est possible pour les chemins, mais
pas toujours concernant les libellés de nœuds qu'on ne peut pas
déplacer.

La seule solution est alors pour Mapnik (ou n'importe quel autre
moteur de rendu) de mettre en place une liste de suivi, tuile par
tuile, contenant la liste d'objets présents seulement dans une tuile
voisine mais dont le tracé dépend de la géométrie de rendu calculée
dans la tuile d'origine: dès qu'il s'occupera de la tuile contenant un
objet dans la base, il modifiera les listes de suivi des autres tuiles
concernées par la géométrie qu'il calcule non seulement pour la tuiles
en cours mais aussi pour les tuiles voisines.

Et pour cela, Mapnik DOIT se faire sa propre base de données,
contenant sa propre géométrie calculée. Une telle base sera alors
évidemment beaucoup plus volumineuse que la base OSM elle-même pusique
non seulement elle modifie et complexifie les géométries, mais aussi
parce que ces géométries dérivées (propres au rendu lui-même) sont
spécifiques à chaque niveau de zoom (elles ne se superposent pas : à
faible niveau de zoom, une route dessinée par exemple occupe une
surface plus importante qu'au niveau de zoom suivant plus détaillé).
Cela veut dire autant de bases de données de géométrie dérivée que de
niveau de zoom supporté par le moteur (d'autant plus que chaque niveau
de zoom n'affiche pas la même quantité d'informations).

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

Répondre à