En fait Nominatim traite les éléments naturels quels que soit leur taille
comme des noeuds et leur attribue un admin_level=15 (totalement
synthétique) pour classer les résultats. Il les considère plus petits que
les noms de batiments (house_name) auxquels il veut les attacher
pouyr attribuer une adresse et sinon il cherche un highway.
Ces éléments naturels sont donc classés n'importe comment.

Et je ne spécule pas du tout sur le fait qu'il crée bel et bien des noeuds
"place" artificiels, avec un id interne puisque c'est bien ce qu'il affiche
dans ses résultats. Et peu importe si cela ne correspond à rien et que
l'attribut synthétique admin_level ne correspond lui aussi à rien du tout.
La logique est totalement fausse qui conduit à les "rattacher" à d'autres
objets très éloignés et arbitraires qui n'incluient pourtant même pas du
tout ces noeuds synthétiques.

C'est une très grossière approximation de Nominatim: on ne peut pas réduire
ces objets à un simple noeud et Nominatim ne sait pas leur attacher
plutôt une bounding box pour avoir quelquechose de plus pertinent. Il se
base juste sur une mesure de distance entre deux noeuds (dont le noeud
artificiel et un autre noeud arbitraire d'un highway ou d'un vraie relation
boundary).

C'est très bancale. C'est un gros manque sur quelquechose qu'i n'a pas été
réellement développé mais laissé en vrac dans une classe fourre-tout
(pseudo-admin_level=15) en attendant un développement sérieux.
Tant que ces objets restent assimilable à un noeud et qu'ils sont
réellement inclus dans une relation admin_level ou assez proche à un
highway indexés pour les rendre "routables" (Nominatim n'indexe pas tous
les highways, seulement ceux ayant un nom ou un numéro de référence) il va
retourner n'importe quoi, c'est le hasard le plus complet en terme de
classification, il n'y a strictement rien qui soit alors réellement
pertinent.

Personellement je pense qu'une première amélioration de Nominatim serait
qu'il vire les noeuds "place" synthétiques pour les objets qui ne sont pas
des noeuds (objets linéraires et surfaces polygonales/multi-polygonales),
et qu'il les remplace au moins par des bounding box, afin de rendre les
calculs de pertinence bien meilleurs. Et il devrait le faire au moins pour
tous les objets actuellement classés en pseudo-admin_level=15. et sans
doute aussi (après tests pour éveluer les effets de bords dans la
détermination des adresses) pour les highways (quoique pour eux il vaudrait
sans doute mieux qu'il indexe les deux extrémités, à moins que ce soit un
chemin fermé ou que ce soit un "polyligne" formant des branches ou un
réseau dans une relation assimilable alors à une surface approximée par la
boundingbox)

Le sam. 17 oct. 2020 à 15:56, Sarah Hoffmann <[email protected]> a écrit :

> Bonjour,
>
> apropos la question pourquoi un lac s'attache a une rue et prends
> son adresse. C'est justement quelque chose qu'il faut revoir et
> probablement reviser. L'attachement aux rues marche bien pour les
> petits POIs comme boite aux lettres ou des supermarches. Ca marche
> meme bien pour un petit pont de village mais ce n'est pas une bonne
> idee pour les grandes lacs ou baies.
>
> Quand a toutes les autres speculations, j'ai vraiment pas envie de
> les discuter parce qu'ils sont exactement ca: speculations qui ont
> rien du tout a voir avec comment Nominatim fonctionne.
>
> Sarah
>
> On Sat, Oct 17, 2020 at 01:00:36PM +0200, Philippe Verdy wrote:
> > Tu ne réponds pas à la question ni au cas évoqué autour de
> > l'Île-Saint-Denis.
> >
> > En effet strictement rien n'associe ce polygone à la route en tant
> > "qu'adresse". C'est stupide comme association surtout pour ce type
> > d'élément. De plus c'est Nominatim qui en interne a généré un "place
> node"
> > (avec un ID interne) sur le polygone (il n'y a aucun node dans le
> polygone).
> >
> > En créant ce "place node", c'est là qu'il a cherché stupidement à lui
> > donner une adresse et à chercher une route proche. Et c'est là que
> > l'approximation commence à jouer et d'ailleurs tu n'expliques pas plus
> > pourquoi il trouve la relation associée à un lieu-dit ou hameau encore
> plus
> > éloigné dans la commune voisine, alors qu'il y a d'autres lieu-dits bien
> > plus proches et que cela n'a strictement rien à voir non plus avec la
> route
> > départementale trouvée dans les environs du noeud.
> >
> > Franchement c'est là que se joue l'approximation: le noeud interne
> "place"
> > ajouté ne représente pas correctement le plan d'eau, on pourrait toujours
> > tenter d'ajouter un noeud "label" dans la relation OSM je suis presque
> > certain que Nominatim n'en tiendra pas compte. Pas même si on sélectionne
> > ce noeud label sur la frontière intercommunale elle-même (ce qui ne sera
> > pas suffisant pour des relations à cheval sur plus d'une seule
> frontière).
> >
> > Et comment fait Nominatim pour même chercher une "adresse" (un highway)
> > sinon en procédant là aussi visiblement à une approximation ne tenant pas
> > compte de la géométrie réelle mais juste des bounding box (comme on le
> voit
> > dans l'exemple trouvé aussi autour de l'Isle-Saint-Denis, où des objets
> > situés dans une concavité de l'île mais dans la commune à l'ouest de
> l'île
> > ne sont trouvés que dans la commune à l'est de l'ile car ils sont dans
> une
> > concavité encore plus grande.
> >
> > Ce sont bien les concavités frontalières qui causent problème ici: l'algo
> > de recherche d'association de noeuds aux adresses "proches" est
> > carrément faux dans ce cas, et encore plus quand ce noeud créé
> > artificiellement ne peut pas luis seul représenter la surface d'un
> > (multi-)polygone.
> >
> > Le mode "debug" ici ne répond pas du tout à ce que fait Nominatim, il
> donne
> > juste un aperçu sur la façon dont un objet isolé a été indexé (sur quels
> > champs "utiles") mais pas du tout comment cet index sera ensuite utilisdé
> > dans une recherche, notamment pour découper une chaine unique en éléments
> > "pertinents", créer des listes d'objets indexés candidats,
> > éliminer sauvagement des objets dans ces listes en ne retenant que les
> plus
> > "probables" avant de calculer des intersections pour "accélérer" le
> calcul
> > d'intersections de ces listes (note: il y a différentes façon de
> > découper/simplifier la chaine de recherche, plus elle est longues et plus
> > le nombre de possibilités croit exponentiellement, Nominatim doit faire
> des
> > simplifications pour réduire le nombre de possibilités à croiser, et il
> > simplifie aussi le traitement des géométries pendant le croisement des
> > listes d'objets en tronquant ces listes avec des critères de "pertinence"
> > non basés sur la géométrie réelle mais ici on  voit que c'est même pire
> > puisqu'il se contente juste d'une géométrie réduite à un seul noeud
> > artificiel, et au final, il peut se retrouver avec une liste totalement
> > vide, ou sinon une liste n'ayant plus assez de candidats, ou un seul qui
> > n'est plus du tout pertinent et qu'il ne vérifie finalement même pas à la
> > fin pour voir si la géométrie correspond.
> >
> > Quand Nominatim ne trouve pas d'objets ou n'en retrouve pas assez, il ne
> > sait pas réduire lui-même ses critères de pertinence (pour ne pas filtrer
> > aussi sauvement ses listes d'objets à croiser avant de faire l'assemblage
> > et le croisement sur les éléments assemblés de la chaine de recherche).
> Il
> > n'utilise pas du tout la géométrie réelle, pour lui tout objet indexé est
> > réduit à un noeud unique, qui peut être arbitraire, et c'est même pire
> que
> > s'il avait réduit la géométrie non pas à un seul noeud mais à une
> > bounding-box (deux noeuds sur une diagonale). Et même à la fin quand il
> > obtient une liste de résultats filtrés, il ne charge pas la géométrie
> > réelle des objets pour vérifier la pertinence réelle.
> >
> > Nominatim ne travaille qu'en une seule passe (zéro ou un seul objet, pour
> > lui c'est suffisant!) et ne sait pas reprendre son filtrage en réduisant
> > ses seuils de pertinence avant les croisements, afin d'obtenir des listes
> > d'objets suffisamment peuplées (pas trop) avant de classer par pertinence
> > en tenant compte de la géométrie réelle (ce qui peut être couteux et lent
> > puisqu'il lui faudrait charger la géométrie complète ces objets, là
> > j'admets qu'il doit limiter la longueur de ces listes).
> >
> >
> > Le sam. 17 oct. 2020 à 12:18, Sarah Hoffmann <[email protected]> a écrit
> :
> >
> > > On Sat, Oct 17, 2020 at 07:15:22AM +0200, Philippe Verdy wrote:
> > > > Si tu enlèves "Saibnt-Jean-de-Braye", Nominatim le trouve.
> > > >
> > > > Sans doute parce que le plan d'eau est à cheval sur deux communes, et
> > > l'est
> > > > indexé que sur une seule, sans doute le centroïde.
> > > >
> > > > Mais si tu cherches sur l'autre commune, Nominatim ne le trouve pas
> non
> > > > plus:
> > > >
> > > >
> > >
> https://www.openstreetmap.org/search?query=%C3%89tang%20du%20Ruet%2C%20Marigny-les-Usages#map=17/47.94215/2.00436
> > > >
> > > > Donc une solution possible serait de couper le multipolygone en deux
> > > > parties, une pour chaque commune
> > >
> > > Non! Ca change rien pour Nominatim et ca casse le lac.
> > >
> > > Si tu veux savoir, ce qui se passe avec la recherche, tu peux te
> servir de
> > > l'interface debug de Nominatim.
> > >
> > > Va sur https://nominatim.openstreetmap.org/ui/details.html. La on peut
> > > entrer soit l'ID de l'objet que tu cherche soit l'URL openstreetmap.
> > > Quand il y a un erreur au retour, ca veut dire que Nominatim ne connait
> > > pas l'objet.
> > >
> > > Dans le cas du lac, ca marche et on voit le page du details:
> > >
> > >
> https://nominatim.openstreetmap.org/ui/details.html?osmtype=R&osmid=2431148&class=natural
> > >
> > > Ici, c'est la partie 'Address' qui est le plus interessant. On peut
> voir
> > > ici ou l'objet etait place par Nominatim. Le lac utilise l'adresse de
> la
> > > route D2152. C'est la plus proche du lac, mais malheuresement elle se
> > > trouve
> > > ni dans Saint-Jean-de-Braye, ni dans Marigny-les-Usages. Cést pour ca
> que
> > > 'Étang du Ruet, Saint-Jean-de-Braye' ne marche pas.
> > >
> > > Sarah
> > >
> > > > Le jeu. 15 oct. 2020 à 09:57, Cyrille37 OSM via Talk-fr <
> > > > [email protected]> a écrit :
> > > >
> > > > > Hello,
> > > > >
> > > > > Nominatim ne trouve pas "Étang du Ruet, Saint-Jean-de-Braye" alors
> > > qu'il
> > > > > existe bien:
> > > > >
> > > > >
> > > > >
> > >
> https://www.openstreetmap.org/search?query=%C3%89tang%20du%20Ruet%2C%20Saint-Jean-de-Braye#map=17/47.94215/2.00436
> > > > >
> > > > > Est-ce à cause du natural=water (plan d'eau) ou qu'il s'agit d'une
> > > > > relation multi-polygone ?
> > > > >
> > > > > Merci de vos lumières :-)
> > > > > Cyrille37
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > Talk-fr mailing list
> > > > > [email protected]
> > > > > https://lists.openstreetmap.org/listinfo/talk-fr
> > > > >
> > >
> > > > _______________________________________________
> > > > Talk-fr mailing list
> > > > [email protected]
> > > > https://lists.openstreetmap.org/listinfo/talk-fr
> > >
> > >
> > > _______________________________________________
> > > Talk-fr mailing list
> > > [email protected]
> > > https://lists.openstreetmap.org/listinfo/talk-fr
> > >
>
> > _______________________________________________
> > Talk-fr mailing list
> > [email protected]
> > https://lists.openstreetmap.org/listinfo/talk-fr
>
>
> _______________________________________________
> Talk-fr mailing list
> [email protected]
> https://lists.openstreetmap.org/listinfo/talk-fr
>
_______________________________________________
Talk-fr mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à