IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

API bêta : la recherche inverse donne des résultats faux !


Sujet :

IGN API Géoportail

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2009
    Messages : 868
    Points : 371
    Points
    371
    Par défaut API bêta : la recherche inverse donne des résultats faux !
    Bonjour
    Je viens de tester la nouvelle API bêta ; ainsi avec ce lien https://geocodage.ign.fr/look4/poi/reverse?searchGeom={%22type%22:%22Circle%22,%22coordinates%22:[1,45],%22radius%22:500}&maxResp=20 on obtient ces réponses (extrait en partant du haut)

    Code JSON : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "properties": {
            "postalCode": [
              "24580"
            ],
            "inseeCode": [
              "24183",
              "24"
            ],
            "toponyme": "la Marzelle",
            "extraFields": {
              "cleabs": "PAIHABIT0000000049517532",
              "names": [
                "la marzelle"
              ]
            },
            "type": [
              "zone d'habitation",
              "lieu-dit habité"
            ],
            "trueGeometry": "",
            "_score": 1,
            "_type": "poi"
          },
          "geometry": {
            "type": "Point",
            "coordinates": [
              0.999655134218566,
              45.003506860317
            ]
          }
        },
        {
          "type": "Feature",
          "properties": {
            "postalCode": [
              "24580"
            ],
            "inseeCode": [
              "24183",
              "24"
            ],
            "toponyme": "la Viale",
            "extraFields": {
              "cleabs": "PAIHABIT0000000302643167",
              "names": [
                "la viale"
              ]
            },
            "type": [
              "zone d'habitation",
              "lieu-dit habité"
            ],
            "trueGeometry": "",
            "_score": 1,
            "_type": "poi"
          },
          "geometry": {
            "type": "Point",
            "coordinates": [
              1.00061352657926,
              45.0014471533513
            ]
          }
        },

    Quand on regarde les résultats, deux lieux-dits sortent du chapeau.
    Le problème c'est que l'ordre d'affichage ne tient pas compte de la distance (qui n'est plus retournée) par rapport au point de recherche Long=1 Lat=45.
    En effet, le lieu-dit le plus proche est "la Vialle" et non "la marzelle".

    Nom : Capture d’écran 2022-05-23 100512.jpg
Affichages : 208
Taille : 166,5 Ko

    On me dira : il suffit de boucler sur les réponses, de calculer la distance d'éloignement et de choisir le bon lieu-dit en fonction.

    Je répondrais : certes, on peut, mais c'est une régression par rapport aux réponses de l'API actuelle.

    Comme je suis vicieux, j'ai modifier la requête pour ne demander d'une seule réponse dans l'espoir que le lieu-dit le plus proche soit retourné.

    Ainsi, l'URL devient https://geocodage.ign.fr/look4/poi/reverse?searchGeom={%22type%22:%22Circle%22,%22coordinates%22:[1,45],%22radius%22:500}&maxResp=1

    Et bien, dans la réponse, le seul lieu-dit retourné reste "la marzelle".

    D'autre part, dans la réponse figure la notion de _score ; dans la doc il est indiqué que sa valeur peut varier de 0 à 1, 1 signifiant la plus haute précision. Dans le cas qui m'anime, les deux lieux-dits ont un _score de 1. Cette notion ne peut donc pas être utiliser pour trouver le lieu-dit le plus proche.

    J'en conclus donc que le géoréférencement inverse de l'API bêta ne fonctionne pas bien.

    Des commentaires ?

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 38
    Points : 68
    Points
    68
    Par défaut
    Un commentaire oui : il faut ajouter un point de référence pour le calcul des distances, sinon c'est une simple intersection.
    https://geocodage.ign.fr/look4/poi/reverse?searchGeom={%22type%22:%22Circle%22,%22coordinates%22:[1,45],%22radius%22:500}&maxResp=20&lonlat=1,45

  3. #3
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte progiciel et développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 228
    Points : 286
    Points
    286
    Par défaut
    Bonjour,

    Merci geopm pour cette information.

    Effectivement, c'est bien mieux avec ce paramètre, que je n'utilisais pas précédemment.
    Pour ma part, je l'utilise le reverse en mode 'address'.

    Si dans la béta 2.0, vous pourriez également intégrer l'information de distance, ce serait cool, et ça éviterait que l'on ajoute une fonction de calcul en sortie du résultat de l'API pour avoir cette information.

    Bonne journée

    Xav

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2009
    Messages : 868
    Points : 371
    Points
    371
    Par défaut
    Merci pour cette réponse.
    Par contre, pourrais-tu expliquer ce qu'est une intersection ?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2009
    Messages : 868
    Points : 371
    Points
    371
    Par défaut Relance du sujet
    Geopm
    - Y a-t-il un paramètre pour ne retourner que les PIO/Adresses situés dans la commune dans laquelle figurent les coordonnées passées en paramètres ?
    - Y a-t-il une logique dans l’ordonnancement des réponses ?
    - Y a-t-il un paramètre pour ne retourner que les _score=1 ?

  6. #6
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte progiciel et développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 228
    Points : 286
    Points
    286
    Par défaut
    Salut Pascal,

    En attendant une réponse du support ign, avec la nouvelle API béta 2.0 qui sera le prochain standard, tu as essayé cette requête ?

    J'ai repris ton exemple plus haut.

    Données :
    • recherche : address,poi
    • geom=cercle avec les coordonnées du centre lon = 1, lat = 45, rayon 500 m
    • centre de la recherche, centre du cercle; lon = 1, lat = 45, pour le calcul de distance
    • limit 20 réponses, pour cette requête, c'est le max


    https://wxs.ign.fr/calcul/geoportail/geocodage/rest/0.1/reverse?index=address,poi&searchgeom={"type":"Circle","coordinates":[1,45],"radius":500}&lon=1&lat=45&limit=20

    Tu récupères un json avec des POI et adresses, et tu as la distance pour les adresses, depuis le centre du cercle (lon= , lat= ).

    Je sais pas si ça répond à la réponse que tu souhaites pour ta requête ?

    A+
    Xav

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2009
    Messages : 868
    Points : 371
    Points
    371
    Par défaut
    Salut XavLight
    Non, je n'avais pas testé cette URL qui répond au problème de l'affichage de la distance.
    Le problème c'est que la doc part dans tous les sens, on ne sait pas à laquelle se fier.
    De plus, contrairement à l'ancien site Geoservice, et sauf erreur de ma part, on ne trouve plus la page dans laquelle étaient recensés différents modes d'utilisation des services Geoservice.
    J'ai reposé mes 3 questions au support hier.
    A suivre.

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 38
    Points : 68
    Points
    68
    Par défaut
    Bonjour

    > Y a-t-il un paramètre pour ne retourner que les PIO/Adresses situés dans la commune dans laquelle figurent les coordonnées passées en paramètres ?
    Le seul moyen de filtrer suivant une commune est d'ajouter dans la requête le paramètre postcode (code postal) ou citycode (code insee).
    On ne peut pas déduire 'à la volé' le code postal du point passé en paramètre.

    > Y a-t-il une logique dans l’ordonnancement des réponses ?
    Oui par ordre décroissant de score.
    Pour une recherche de géocodage inverse, si aucun point de référence (paramètres lon&lat) n'est donné, le score est toujours 1 (intersection avec la géométrie de recherche), dans ce cas il n'y a pas d'autre logique particulière pour l'ordonnancement des résultats

    > Y a-t-il un paramètre pour ne retourner que les _score=1 ?
    Non

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2007] Le lien DDE me donne des résultats faux
    Par Guy GRANDGIRARD dans le forum Word
    Réponses: 8
    Dernier message: 02/11/2014, 22h57
  2. fonction et son inverse qui donne des résultats faussés
    Par kifouillou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/05/2009, 12h45
  3. probléme avec une recherche qui donne aucun résultat
    Par lila23 dans le forum Débuter
    Réponses: 8
    Dernier message: 18/04/2009, 21h47
  4. tester si une requete donne des résultats
    Par gui-llaume dans le forum IHM
    Réponses: 5
    Dernier message: 12/12/2007, 19h39
  5. 2 executions d'un programe C graphique avec SDL me donne des résultats différents
    Par Brin d'if dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 03/12/2007, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo