>
> Les choses seraient plus simples si OSM ne permettait plus de représenter
> une surface avec des chemins d'orientation quelconque et imposait la même
> restriction que le GIS standard. On n'aurait même pas besoin non plus des
> rôles "inner" et "outer" qui ne sont qu'indicatifs (pour les humains) mais
> même pas réellement distinctifs (pour tous les moteurs de rendus ou
> d'analyse, qui de toute façon doivent ignorer cette distinction apparente
> et les traiter de la même façon).
>
> Mais alors pourquoi OSM ne l'impose pas ? Simplement parce que les chemins
> dans OSM sont "partagés" et peuvent être réutilisés en tant que membres par
> plusieurs relations de surface (chacune définissant une "orientation GIS"
> différente au sens surfacique) et avoir en plus une orientation ne
> dépendant pas des relations de surface mais de ce qu'impose d'autres objets
> "filaires" (par exemple : orientation des cours d'eau waterway=*, ou sens
> unique des rues highway=*, ou voies ferrées railway=*).
>

J'ajoute en plus  que le fait qu'OSM n'impose pas l"orientation GIS des
chemins membres d'un "multipolygon" pose un problème non seulement dans les
rendus, mais aussi dans les éditeurs utilisés (à cause de limite mémoire,
que ce soit dans un éditeur web comme iD où la limite est imposée par le
navigateur utilisé ou un éditeur externe comme JOSM (par exemple la limite
mémoire des VMs Java) : on ne peut pas charger la totalité de la géométrie
d'un multipolygone san imposer une charge lourde au serveur OSM, et sans
saturer en plus la mémoire de l'éditeur.

On doit donc pouvoir travailler dans un éditeur avec une géométrie
partiellement téléchargée pour les relations. Le rendu dans l'éditeur du
coté "intérieur" ou "extérieur" n'est donc pas toujours exact et
l'utilisateur doit se guider sur les indications des rôles "inner" et
"outer" pour éviter de casser la géométrie de ces relations surfaciques
(mais c'est un guide partiel qui ne répond pas à toutes les questions, le
rendu dans l'éditeur peut rester malgré tout incorrect tant que la
géométrie de la relation n'est pas téléchargée en totalité en mémoire...)

C'est pour ça qu'on demande aux utilisateurs de limiter la géométrie des
multipoygones afin que le nombre total de points ne dépasse pas quelques
milliers de points. Sinon on leur demande de scinder les multipolygones en
plusieurs parties.

Ce sera à l'export GIS de préparer les géométries complètes de polygones
afin d'en faire un rendu exact (et pour cela il n'a absolument pas besoin
de la distinction des rôles "inner" et "outer"....), en défusionnant les
ways OSM partagés (pour les importer dans des polygones surfaciques
complets et correctement orientés plaçant l'intérieur à gauche, quelque
soit l'orientation des chemins utilisés dans OSM).

Bref on a un compromis dans OSM favorisant plutôt les utilisateurs afin de
leur permettre d'éditer la carte sans avoir nécessairement une machine
puissante avec plein de mémoire (ou beaucoup de stockage dans une base
locale externe : c'est ce qu'a fait iD en ne chargeant plus tout en mémoire
dans le navigateur, mais en utilisant une fonctionnalité "base de données
locale" offerte par les navigateurs web récents, où des données peuvent
être stockées sur disque et pas gardées en mémoire, ce qui le rend
utilisable même dans des navigateurs limités en 32 bits mais disposant d'un
stockage local généralement plus confortable). En attendant les rôles
"inner" et "outer" restent utiles car on continue de l'utiliser sans avoir
forcément téléchargé la totalité de la géométrie des relations (même via
une "base de données externe" locale) et parce que le rendu local dans
l'éditeur ne s'en sert pas (cela imposerait trop de données en mémoire ou
nécessiterait que l'éditeur précalcule une "orientation GIS" et la mette en
cache dans sa base externe locale)
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à