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. #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 Geocoding inverse : recherche des cadors en javascript
    Salut à tous
    La page http://wnat.fr/geoportail_quel_lieudit.php retourne la localité la plus proche du ctrl+shift+click sur la carte.
    En fait, elle ne le retourne correctement que sous Firefox mais dans IE, Chrome ou Safari .
    Grosso modo, je charge le XML dans une variable avec loadXMLString et je fais des boucles en me basant sur xmlDoc.getElementsByTagName
    Le problème réside dans l'interprétation de la structure XML retournée.
    Avec Firebug, çà semble limpide mais sous Chrome les xmlDoc.getElementsByTagName plantent.
    Bref des yeux neufs ne seraient pas superflus
    Notez qu'une fonction alternative de parsing serait bien car la mienne ressemble à une usine à gaz.
    A+
    Pascal

  2. #2
    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,

    vous pouvez utiliser ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var parser = new Geoportal.Format.XLS();
    var ols = parser.read(loadXMLString);
    ols est un objet de classe Geoportail.OLS.XLS (doc : http://api.ign.fr/tech-docs-js/2.0.1/jsdoc/index.html) qui vous permettra d'accéder aux adresses de la réponse.

    L'avantage de cette méthode est qu'elle utilise le parsing des XML par OpenLayers et est donc multi-navigateur.

  3. #3
    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
    Thibault
    Aurais-tu un exemple d'utilisation ?

  4. #4
    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
    Bonjour,

    ce que tu essayes de faire est déjà écrit dans l'API Géoportail. Pourquoi ne pas faire simplement :


    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    // creation de la couche avec les paramètres
       var layerResults= new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
                'PositionOfInterest:OPENLS;ReverseGeocode',//layer name
                {
                    maximumResponses:100,
                    formatOptions: {
    ...
                    },
                }) ;
    
    
    ... 
    
    // appel du service de géocodage avec les coordonnées du point saisi
    layerResults.REVERSE_GEOCODE(
      new Geoportal.OLS.Position(new OpenLayers.Geometry.Point(lon,lat)),
      {
          onSuccess: function(resp) {
            console.log(resp) ; // pour voir à quoi ressemble la réponse
            // ici, on traite la réponse quand elle est OK
    
          },
          onFailure: function(resp) {
            console.log(resp) ;
            // ici, on traite la réponse quand elle est en erreur
    
          },
    
      }
    ) ;

    La gestion du protocole JSONP est déjà prise en charge, celles des différents navigateurs aussi...

  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
    Gilles
    J'ai créé la page http://wnat.fr/geoportail_quel_lieudit2.php en ajoutant le code suggéré.
    Sur la ligne 138 l'erreur "TypeError: this.format is null" est produite.

    Autrement j'ai du mal à raccrocher cette technique avec celles présentées dans les pages de recherches qui retournent du XML.

    Ma page initiale http://wnat.fr/geoportail_quel_lieudit.php, si elle n'est pas parfaite, est proche du but, hormis le parsing du résultat qui ne fonctionne que sous FF.
    Thibault avait proposé de passer par le parser
    var parser = new Geoportal.Format.XLS();
    var ols = parser.read(loadXMLString);

    La aussi, le renvoi vers la doc de la classe est assez obscure.

    Il y a plein d'exemple permettant de passer les requêtes, en POST en GET... (http://depot.ign.fr/geoportail/api/d...ur/search.html) mais aucun montrant comment exploiter le résultat.

    Je suis assez découragé en fait !

  6. #6
    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
    Bonjour Pascal,

    Citation Envoyé par saxrub Voir le message
    J'ai créé la page http://wnat.fr/geoportail_quel_lieudit2.php en ajoutant le code suggéré.
    Sur la ligne 138 l'erreur "TypeError: this.format is null" est produite.
    peux-tu, ligne 283 de ta page, remplacer :

    <script type="text/javascript" src="http://api.ign.fr/geoportail/api/js/2.1.0/Geoportal.js"></script>

    par

    <script type="text/javascript" src="http://api.ign.fr/geoportail/api/js/2.1.0/lib/geoportal/lib/GeoportalStandard.js"></script>


    ça chargera l'API en mode "non compacté" et nous permettra de voir plus précisément où intervient l'erreur levée.

    Aussi, par curiosité, pourquoi charges-tu spécifiquement le script :

    http://depot.ign.fr/geoportail/api/d...metry/Curve.js
    [/quote]


    Autrement j'ai du mal à raccrocher cette technique avec celles présentées dans les pages de recherches qui retournent du XML.

    Ma page initiale http://wnat.fr/geoportail_quel_lieudit.php, si elle n'est pas parfaite, est proche du but, hormis le parsing du résultat qui ne fonctionne que sous FF.
    Thibault avait proposé de passer par le parser
    var parser = new Geoportal.Format.XLS();
    var ols = parser.read(loadXMLString);

    La aussi, le renvoi vers la doc de la classe est assez obscure.

    Il y a plein d'exemple permettant de passer les requêtes, en POST en GET... (http://depot.ign.fr/geoportail/api/d...ur/search.html) mais aucun montrant comment exploiter le résultat.
    on a un chantier en cours pour remettre les exemples à plat afin de les simplifier et de les faire illustrer une fonctionnalité seulement dans la mesure du possible. Tes remarques alimenteront ce chantier...


    Je suis assez découragé en fait !
    ça va revenir

  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
    Gilles
    j'inclus curve.js afin de calculer la distance réelle entre le point cliqué et les adresses retournées en tenant compte du Lambert 93.
    La discussion http://www.developpez.net/forums/d14...inverse-corde/ traite du sujet vers la fin du fil.
    Je vais essayer avec l'autre include js
    A suivre
    Pascal

  8. #8
    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
    Pascal,

    le changement de script que tu as fait m'a permis de voir précisément où se produisait l'erreur rencontrée dans le code.

    Du coup, je pense voir d'où vient l'erreur : après avoir créé la couche comme je t'avais dit de le faire, il faut la rajouter à la carte, comme ça :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    // creation de la couche avec les paramètres
       var layerResults= new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
                'PositionOfInterest:OPENLS;ReverseGeocode',//layer name
                {
                    maximumResponses:100,
                    formatOptions: {
    ...
                    },
                }) ;
    
      viewer.getMap().addLayer(layerResults) ;
    
    ... 
    
    // appel du service de géocodage avec les coordonnées du point saisi
    layerResults.REVERSE_GEOCODE(
      new Geoportal.OLS.Position(new OpenLayers.Geometry.Point(lon,lat)),
      {
          onSuccess: function(resp) {
            console.log(resp) ; // pour voir à quoi ressemble la réponse
            // ici, on traite la réponse quand elle est OK
    
          },
          onFailure: function(resp) {
            console.log(resp) ;
            // ici, on traite la réponse quand elle est en erreur
    
          },
    
      }
    ) ;
    ça permettra à certains champs de s'initialiser correctement.

  9. #9
    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
    Gilles
    Après ton défilé avec le contingent de l'IGN sur les Champs Élysées, peut-être que auras-tu le temps de répondre à ce message
    Après la modif suggérée, j'ai l'erreur suivante dans GML.js ligne 697
    TypeError: geometry is undefined
    var className = geometry.CLASS_NAME;

    Une autre question, que se passerait-t-il, si tout marchait bien, si on ctrl+shift+click de nouveau ? La couche serait remplacée dans autre discours ?

    A+

    Pascal

  10. #10
    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
    Bonjour Pascal,

    quand j'ai vu ton message, je me suis absenté des Champs Élysée, j'espère que Manuel et François n'auront rien vu...

    Bon, l'erreur levée vient du fait que la fonction REVERSE_GEOCODE prend comme premier paramètre un objet de type Geoportal.OLS.Position et non OpenLayers.Geometry.Point comme tu le fais :

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


    Du coup, ligne 184, il faut que tu remplaces :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var centre = new OpenLayers.Geometry.Point(lonlatD.lon,lonlatD.lat);
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var centre = new Geoportal.OLS.Position(new OpenLayers.Geometry.Point(lonlatD.lon,lonlatD.lat));
    (cf. http://api.ign.fr/tech-docs-js/2.1.0...l.OLS.Position)

    Bon allez, j'y retourne

  11. #11
    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
    Gilles
    Il n'y a plus d'erreur de retournée ; en fait, il n'y a rien plus de retourné !
    Foin des onSuccess et des onFailure espérés !

  12. #12
    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
    Pascal,
    je viens de tester ta page à nouveau : il y a de nouvelles erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TypeError: viewer.getMap(...).layerResults is undefined
    http://wnat.fr/geoportail_quel_lieudit2.php
    Line 216
    est-ce que tu es en train de travailler dessus ?

  13. #13
    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 !
    Un retour arrière a été fait
    Tu peux donc retester

  14. #14
    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
    Pascal,

    il me semble que j'ai oublié un petit truc : il faut que tu rajoutes la propriété "scopeOn" à ton objet my-options :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var my_options= {
            scopeOn: layerResults,  // par exemple
             onSuccess: function(resp)
    	  	{
    			alert("OK "+resp);
            	console.log(resp);
    		},
          onFailure: function(resp)
    	   	{
    			alert("KO "+resp);
            	console.log(resp);
    		}
            };
    cette propriété permet de pointer vers un objet qui sera appelé "this" dans les fonctions onSuccess et onFailure.

    Je reconnais tout ceci est très mal documenté... J'ai été obligé de faire du pas à pas dans l'exécution de la page pour comprendre pourquoi tes fonctions de callback n'étaient pas appelées...

  15. #15
    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
    Gilles
    Suite à ta remarque et la modif de la page, il y a une réponse ; il n'y a pas grand chose mais il y en a une !
    Je crains que je vais retomber dans le problème du parsing du résultat qui ressemble étrangement au résultat retourné (du moins les entêtes) par ma page initiale http://wnat.fr/geoportail_quel_lieudit.php
    Comme tu le dis, un parcourt du combattant !
    Pascal

  16. #16
    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
    Pascal,

    mon idée était vraiment de ne pas parser à la main la réponse reçue car ce parsing est effectué par l'arborescence des classes qu'il y a derrière la classe Geoportal.Layer.OpenLS.Core.LocationUtilityService.

    Ce parsing est effectué là :

    http://api.ign.fr/geoportail/api/js/...ayer/OpenLS.js

    dans la methode success :


    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
        /**
         * Method: success
         * Called when the Ajax request returns a response.
         *
         * Parameters:
         * request - {XmlNode} request to server
         */
        success: function(request) {
            if (this.ols) {
                this.ols.destroy();
                this.ols= null;
            }
            if (!request) {return;}
            var doc= request.responseXML;
            if (!doc || !doc.documentElement) {
                doc= request.responseText;
            }
            this.ols= this.format.read(doc);
            if (!this.ols) {return;}
            // ErrorList
            var errs= this.ols? this.ols.getErrors():null;
            if (errs) {
                //TODO
                this.ols.destroy();
                this.ols= null;
                return;
            }
            if (this.ols.getNbBodies()<=0) {
                this.ols.destroy();
                this.ols= null;
                return;
            }
        },
    en mettant un breakpoint dans cette fonction, on voit qu'elle est appelée lorsqu'on clique sur ta page. Tu dois donc pouvoir récupérer tes résultats parsés dans la structure this.ols (this désignant l'objet openLayersResults). Donc, si tu rajoutes un console.log(this.ols) dans ta fonction onSuccess, tu devrais (je croise les doigts) voir cette structure remplie...

  17. #17
    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

    Gilles,
    Pas de ols à l'horizon (avec Firebug, j'ai ouvert tous les noeuds).
    En fait, je vois une réponse, mais elle est vide.
    Ne serait-ce pas le même problème que sur l'indicent "Geocoding inverse : une corde vite !" ; seule une recherche dans un cercle donne des résultats
    Pascal

  18. #18
    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
    Pascal,

    c'est bon, j'ai trouvé :

    en fait, la propriété this.ols est détruite par la fonction appelante : Geoportal.Layer.OpenLS.Core.LocationUtilityService.RvGcSuccess
    Par contre, le code de cette dernière est instructif :

    *
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
        RvGcSuccess: function(request) {
            this.success(request);
            this.olsRqst= null;
            if (!this.ols) {
                this.queriedAddresses= null;
                return;
            }
            // we have one query => one body
            var b= this.ols.getBodies()[0];
            if (!b) {
                this.queriedAddresses= null;
            } else {
                var rp= b.getResponseParameters();
                if (!rp || rp.getNbReverseGeocodedLocations()<=0) {
                    this.queriedAddresses= null;
                } else {
                    for (var i= 0, ilen= rp.getNbReverseGeocodedLocations(); i<ilen; i++) {
                         var rgl= rp.getReverseGeocodedLocations()[i];
                         if (!rgl || !rgl.lonlat || !rgl.address) {
                             continue;
                         }
                         var feature= new OpenLayers.Feature.Vector(
                                rgl.lonlat,
                                {
                                    'address':rgl.address.clone(),
                                    'measure':(rgl.measure? rgl.measure.clone(): null)
                                },
                                null
                         );//FIXME: style
                         if (!this.queriedAddresses[0].features) {
                             this.queriedAddresses[0].features=[];
                         }
                         this.queriedAddresses[0].features.push(feature);
                        // DON'T addFeatures() otherwise all addresses will be drawn ...
                    }
                }
            }
            this.ols.destroy();
            this.ols= null;
        },

    Il copie le contenu des adresses parsées dans la propriété : this.queriedAddresses[0].features qui sont prêtes à être dessinées sur la carte...
    Il faut donc que tu fasses un console.log(this.queriedAddresses[0].features) pour voir tes résultats.

  19. #19
    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
    Modif faite : this.queriedAddresses est null

  20. #20
    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
    Pas si "null" que ça : fais le test sur Paris...

    queriedAddress est null lorsqu'il n'y a pas de résultats retournés. C'est un autre sujet...

    Mais lorsqu'il y en a, il est bien renseigné avec les adresses parsées

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 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