Et d'ailleurs ça se voit concernant son analyse de "pertinence": il retient
la départementale comme "pertinente" car il a déterminé la distance comme
étant nulle, ce qui est ici totalement faux; les distances calculées sont
fausses, même pour le noeud "place" ajouté artificiellement (il y a aussi
un autre noeud "place" artificiel pour la départementale).

C'est carrément stupide, les objets ne peuvent pas être valament
représentés par un seul noeud (comme décrit sur
https://nominatim.org/release-docs/develop/api/Output/#place_id-is-not-a-persistent-id),
il en faudrait au moins 2 pour calculer une pertinence non pas sur la seule
distance de point à point, mais en tenant compte des surfaces
d'intersection des rectangles et sinon en prenant la distance minimale
d'écart entre ces rectangles (20 cas possibles de placement relatif quand
il n'y a aucune intersection entre 2 rectangles dont 21 façons de calculer
cette distance minimale) comme un critère de valeur négative.

Et même avec cette modif, on va avoir des cas tordus dans les concavités
frontalières ou les méandres du linéaire des rues/routes pour rechercher
une adresse pertinente, et c'et là qu'il faut une notation seondaire pour
mieux trier les listes d'objets ou revoir les seuils de filtrage en amont

Cependant ce que tu suggères est que pour cet étang, il suffirait de nommer
la petite route qui la borde et vient du sud-ouest.

Mais tu n'explique pas du tout pourquoi ce n'est pas suffisant dans le cas
du Quai d'Asnières à côté de l'île-Saint-Denis, un cas qui nécessite de
tenir compte de la géométrie réelle et pas d'une simple approximation à un
seul noeud artificiel ni même à une bounding-box car on n'ira pas non plus
ajouter un nouveau nom qui existe déjà et n'a pas besoin d'être ajouté
artificiellement dans la base de données en tant que pseudo-nom (on a déjà
eu les "pseudo-noeuds" avec les membres de rôle "label" dans les relations,
des noeuds que Nominatim n'utilise plus du tout, ni non plus la plupart des
moteurs de rendus. Nominatim n'utilise pas non plus les noeuds
"admin_centre" alors qu'ils seraient encore utiles pour affiner la note de
pertinence au delà du seul noeud (ou de la seule bounding box) et éviter un
filtrage trop précoce des listes d'objets candidats avant le croisement de
ces listes (cela lui permettrait la plupart du temps de continuer à
travailler en une seule passe).







Le sam. 17 oct. 2020 à 13:00, Philippe Verdy <ver...@gmail.com> a écrit :

> 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 <lon...@denofr.de> 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 <
>> > talk-fr@openstreetmap.org> 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
>> > > Talk-fr@openstreetmap.org
>> > > https://lists.openstreetmap.org/listinfo/talk-fr
>> > >
>>
>> > _______________________________________________
>> > Talk-fr mailing list
>> > Talk-fr@openstreetmap.org
>> > https://lists.openstreetmap.org/listinfo/talk-fr
>>
>>
>> _______________________________________________
>> Talk-fr mailing list
>> Talk-fr@openstreetmap.org
>> https://lists.openstreetmap.org/listinfo/talk-fr
>>
>
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à