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 :

Geocoding inverse : recherche des cadors en javascript


Sujet :

IGN API Géoportail

  1. #21
    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
    Certes, on pourra localisé la boutique IGN des Champs Elysée mais pas mon village (la Roche, 87510 Peyrilhac, 1,105863/45,947437) !

    Ceci dit :
    - si je clique sur la mairie de Peyrilhac , j'obtiens un résultat.
    - si je clique à plus de 150m de la mairie, morne plaine !
    Il faut rapprocher ce comportement de la discussion http://www.developpez.net/forums/d14...nverse-corde#6 qui a aboutit à la recherche dans un cercle.

    Questions :
    - Une recherche dans un cercle est-elle programmable ?
    - Comment trouver la distance des adresses retournées par rapport au point du clic (la aussi voir la fin de la discussion http://www.developpez.net/forums/d14...inverse-corde/ avec la recherche sur le clic sur le réticule en croix).
    - La liste des adresses retournées le sont-elles de la plus proche à la plus éloignée ?
    - Si oui, la distance est-elle calculée selon la projection Lambert 93 pour la France métropolitaine (voir discussion http://www.developpez.net/forums/d14...nverse-corde#9) ?
    - Comment utiliser la classe pour récupérer le nom de la Commune, insee, nom de la rue ou du lieu-dit...

    Bref, ça avance, mais que d'énergie et on est encore loin de (je n'ai pas résisté à cette émoticône)

  2. #22
    Membre chevronné Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Points : 1 843
    Points
    1 843
    Par défaut
    Citation Envoyé par saxrub Voir le message
    Certes, on pourra localisé la boutique IGN des Champs Elysée
    Même pas ! C'était le bon vieux temps . Elle est maintenant là : http://loisirs.ign.fr/boutique-ign-paris


    - si je clique sur la mairie de Peyrilhac , j'obtiens un résultat.
    - si je clique à plus de 150m de la mairie, morne plaine !
    Il faut rapprocher ce comportement de la discussion http://www.developpez.net/forums/d14...nverse-corde#6 qui a aboutit à la recherche dans un cercle.

    Questions :
    - Une recherche dans un cercle est-elle programmable ?
    Oui. Tout est programmable, et surtout, c'est déjà programmé : l'API propose une palette d'outils pour ça.

    La classe Geoportal.Control.LocationUtilityService.ReverseGeocode permet de rajouter un controleur qui va te permettre de gérer ta saisie (click, cercle ou emprise), envoyer la requête et afficher les résultats (elle aurait aussi pu faire le café ):

    http://api.ign.fr/tech-docs-js/2.1.0...eocode-js.html

    En gros, tu passes en premier paramètre du constructeur la couche que tu as créée (layerResults) et tu rajoutes le contrôle à la carte et tu l'actives :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var reverseCtrl= new Geoportal.Control.LocationUtilityService.ReverseGeocode(layerResults, {//options éventuelles}) ;
    viewer.getMap().addControl(reverseCtrl) ;
    reverseCtrl.activate() ; // => le dialogue de saisie s'affiche sur la carte...
    - Comment trouver la distance des adresses retournées par rapport au point du clic (la aussi voir la fin de la discussion http://www.developpez.net/forums/d14...inverse-corde/ avec la recherche sur le clic sur le réticule en croix).
    l'info est là (regarde le résultat de ton console.log() ) :

    this.queriedAddresses[0].features[i].attributes.measure.value

    seulement, avec l'API 2.1.0, il vaut null mais avec l'API 2.1.1-SNAPSHOT, il est bien rempli

    - La liste des adresses retournées le sont-elles de la plus proche à la plus éloignée ?
    je dirais que oui, mais peut-être tcoupin peut confirmer ?

    - Si oui, la distance est-elle calculée selon la projection Lambert 93 pour la France métropolitaine (voir discussion http://www.developpez.net/forums/d14...nverse-corde#9) ?
    ce que je sais, c'est que ce sont des mètres. Après comment sont calculés ces mètres, là aussi tcoupin pourrait nous en dire plus ?

    - Comment utiliser la classe pour récupérer le nom de la Commune, insee, nom de la rue ou du lieu-dit...
    quelle classe ?

    Bref, ça avance, mais que d'énergie et on est encore loin de (je n'ai pas résisté à cette émoticône)

    j'ai soif

  3. #23
    Membre confirmé Avatar de tcoupin
    Homme Profil pro
    Ingénieur Géodésien
    Inscrit en
    Octobre 2012
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Géodésien
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 276
    Points : 525
    Points
    525
    Par défaut
    - La liste des adresses retournées le sont-elles de la plus proche à la plus éloignée ?
    je dirais que oui, mais peut-être tcoupin peut confirmer ?
    Presque... voir cette discussion

  4. #24
    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 Le retour du jeudi
    Bonjour à tous
    Je reprends l'ouvrage après quelques jours de congés.
    J'ai bien compris qu'il faut arriver à programmer une recherche dans un cercle.
    Je viens de dupliquer la page en http://wnat.fr/geoportail_quel_lieudit3.php avant de faire les modifs.
    J'ai essayé de créer un cercle en essayant avec Geoportal.OLS et OpenLayers.Geometry.Polygon : sans succès !
    La version actuelle (vers ligne 184) indique comme erreur Geometry is undifined dans dans openlayer/formet/GML.js
    Encore une fois, un œil neuf ne serait pas superflu
    Pascal

  5. #25
    Membre confirmé Avatar de tcoupin
    Homme Profil pro
    Ingénieur Géodésien
    Inscrit en
    Octobre 2012
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Géodésien
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 276
    Points : 525
    Points
    525
    Par défaut
    Bonjour Saxrub,

    Dans http://wnat.fr/geoportail_quel_lieudit3.php, à la ligne 187 et 212, je vois que tu utilise REVERSE_GEOCODE avec comme premier paramètre un objet OpenLayers.Geometry.Polygon. Seulement REVERSE_GEOCODE prend un Geoportal.OLS.Prosition : tu peux regarder comment le construire à aux lignes 351 à 358 de http://depot.ign.fr/geoportail/api/d...erseGeocode.js

    Thibault

  6. #26
    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
    Thibaud
    Je viens de modifier la page et j'arrive à afficher "OK" mais je n'ai pas de réponse dans quiriedAddresses.
    Concernant le modèle proposé, je ne sais quoi faire de la ligne 345 qui génère la variable features utilisée en lignes 349 et 352.
    A te lire;
    Pascal

  7. #27
    Membre confirmé Avatar de tcoupin
    Homme Profil pro
    Ingénieur Géodésien
    Inscrit en
    Octobre 2012
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Géodésien
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 276
    Points : 525
    Points
    525
    Par défaut
    Voici à quoi ressemble la requête qui part :
    Code : 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
    <XLS xmlns="http://www.opengis.net/xls" version="1.2">
      <RequestHeader sessionID=""/>
      <Request methodName="ReverseGeocodeRequest" version="1.2" requestID="" maximumResponses="100">
        <ReverseGeocodeRequest>
          <Position>
            <gml:Point xmlns:gml="http://www.opengis.net/gml">
              <gml:pos>48.85730430593966 2.386203047902387</gml:pos>
            </gml:Point>
            <gml:CircleByCenterPoint xmlns:gml="http://www.opengis.net/gml">
              <gml:pos>undefined undefined</gml:pos>
              <gml:radius>5000</gml:radius>
            </gml:CircleByCenterPoint>
          </Position>
          <ReverseGeocodePreference>StreetAddress</ReverseGeocodePreference>
        </ReverseGeocodeRequest>
      </Request>
    </XLS>
    Donc il y a un problème de centre de cercle.
    Quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    my_circle._aoi= {
    	radius: 5000,
    	center: centre
    };
    centre est un OpenLayers.Geometry.Point, il faudrait un OpenLayers.LonLat donc plutôt ton objet lonlatD.

    Attention également, le rayon maximum autorisé est 1000 m.

    Thibault

  8. #28
    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
    Je viens de coder un OpenLayers.LonLat : je n'ai plus de réponse, ni onSuccess, ni onFailure!
    Pascal

  9. #29
    Membre confirmé Avatar de tcoupin
    Homme Profil pro
    Ingénieur Géodésien
    Inscrit en
    Octobre 2012
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Géodésien
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 276
    Points : 525
    Points
    525
    Par défaut
    Je crois que je me suis mal exprimé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     my_circle= new Geoportal.OLS.Position(un objet OpenLayers.Geometry.Point);
    my_circle._aoi= {
    	radius: 1000,
    	center: un objet OpenLayers.LonLat
    };
    Thibault

  10. #30
    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
    Ca chauffe : je file prendre ma douche et je donne des nouvelles dans la matinée ! Merci Thibaud

  11. #31
    Membre confirmé Avatar de tcoupin
    Homme Profil pro
    Ingénieur Géodésien
    Inscrit en
    Octobre 2012
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Géodésien
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 276
    Points : 525
    Points
    525

  12. #32
    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
    Il resterait trois problèmes :
    1 - "le rat des villes et le rat des champs" : le retour
    La recherche ne renvoie que des places urbaines ou assimilées. Comment coder var layerResults= new Geoportal.Layer.OpenLS.Core.LocationUtilityService('PositionOfInterest:OPENLS;ReverseGeocode', afin de recevoir les lieux-dits ?
    2 - distance d'éloignement : le features.....mesures.value est nullNom : Sans titre-1.fw.png
Affichages : 122
Taille : 1,35 Mo
    3 - zoom intempestif après le ctrl+shift+clic avec l'outil "se rapprocher" actif : un pas de zoom est appliqué sans qu'on (je) le demande.

    Peaufinage à venir : recalculer la distance d'éloignement réelle en Lambert93 pour FXX pour au final annoncer la localité la plus proche

    Il va falloir inventer les BeerCoins !

    A+

  13. #33
    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 Rat des villes, rat des champs !
    L'ajout d'options lignes 221 à 225 a fait sortir les lieux-dits de leurs tanières.

  14. #34
    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
    Sauf erreur de ma part, je ne vois pas comment récupérer les coordonnées des adresses retournées ; une piste ?

  15. #35
    Membre confirmé Avatar de tcoupin
    Homme Profil pro
    Ingénieur Géodésien
    Inscrit en
    Octobre 2012
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Géodésien
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 276
    Points : 525
    Points
    525
    Par défaut
    Bonjour Saxrub,

    • mesures.value null est un bug connu est réparé sur la version de développement disponible sur http://depot.ign.fr/geoportail/api/d....1.1-SNAPSHOT/
    • Le point retourné se trouve dans un objet OpenLayers.LonLat qui est au même niveau hiérarchique que address et measure


    Thibault

  16. #36
    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
    Thibaud
    Je ne trouve pas d'objet LonLat avec FireBug au niveau annoncé ! Tu aurais un exemple ?
    Tu aurais une date de le mise en prod du module corrigé ?
    Intégrera-t-il la mesure tenant compte du Lambert93 pour FXX comme annoncé fin juin dans un de mes posts http://www.developpez.net/forums/d14...e/#post7878631 ?
    Pascal

  17. #37
    Membre confirmé Avatar de tcoupin
    Homme Profil pro
    Ingénieur Géodésien
    Inscrit en
    Octobre 2012
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Géodésien
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 276
    Points : 525
    Points
    525
    Par défaut
    Nom : inverseJS.png
Affichages : 105
Taille : 22,4 Ko

    C'est un objet qui s'appelle lonlat mais qui est de type OpenLayers.Geometry.Point... je vais de ce pas reprendre un café...

    Pour ce qui est de la modification du calcul de distance, je n'ai pas encore de date.

    Thibault

  18. #38
    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
    Je suis désolé, mais je ne trouve pas !
    CI-joint ce que je vois via FireBug
    Nom : Sans titre-2.png
Affichages : 114
Taille : 214,8 Ko

  19. #39
    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
    Il semblerait que BBox apporte une solution aux coordonnées. Je gratterai un peu plus en fin de matinée

  20. #40
    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
    Oui, c'est ça : bbox indique le coordonnées des localités retournées
    Je vais ajouter le calcul des distances entre midi et deux afin d'afficher la localité réellement la plus poche du click

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Geocoding inverse : hiérarchisation des localités retournées
    Par saxrub dans le forum IGN API Géoportail
    Réponses: 6
    Dernier message: 22/09/2014, 20h51
  2. Réponses: 1
    Dernier message: 18/08/2014, 13h40
  3. Rechercher des exercices résolus sur le JavaScript
    Par depanamakudiatu dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/01/2013, 15h48
  4. Recherche des horloges en javascript
    Par grex1 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/11/2009, 15h40
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

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