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

Angular Discussion :

Récupérer des données leaflet-geosearch


Sujet :

Angular

  1. #1
    Candidat au Club
    Récupérer des données leaflet-geosearch
    Bonjour,
    je suis actuellement sur un projet et je dois récupérer les coordonnées GPS en utilisant leaflet-geosearch
    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
     
      chosenPlaceDeparture= '';
     
      onEnterDeparture(chosenPlace: string) { 
        this.chosenPlaceDeparture = chosenPlace;
        console.log("Departure");
        const provider = new OpenStreetMapProvider();
        this.chosenPlaceDeparture = provider
          .search({ 
            query: this.chosenPlaceDeparture })
          .then(function(result) {
            console.log(result[0].label);
            return result[0].label;
      });
      console.log(this.chosenPlaceDeparture); // le probleme est ici

    Dans cette exemple je souhaite uniquement récupérer le nom complet d'une adresse. J'arrive bien à l'afficher sur la console. Le problème vient de cette histoire de "Promise" que je n'ai pas très bien compris. Je n'arrive pas à afficher le contenu.Pouvez-vous m'aider
    cordialement
    Diego

  2. #2
    Modérateur

    Bonjour,
    c'est le caractère asynchrone de new OpenStreetMapProvider qui t'empêche d'avoir ton résultat où tu le voudrais.

    Mets une trace pour voir l'ordre de tes instructions.

    Tu peux également utiliser await pour régler ton soucis.

  3. #3
    Candidat au Club
    Merci beaucoup, j'ai réglé mon problème je met le code final si quelqu'un par la suite à également besoin d'aide.
    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
     
      chosenPlaceDeparture= '';
      departure;
      departureLong;
      departureLat;
     
      async onEnterDeparture(chosenPlace: string) { 
        this.chosenPlaceDeparture = chosenPlace;
        const provider = new OpenStreetMapProvider();
        var test='';
        this.departure = await provider
          .search({ query: this.chosenPlaceDeparture });
     
        this.chosenPlaceDeparture = this.departure[0].label;
        this.departureLong = this.departure[0].x;
        this.departureLat = this.departure[0].y;
     
      }

###raw>template_hook.ano_emploi###