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

APIs Google Discussion :

Afficher les coordonnées et adresse d'une infowindow sur un marker déplacé


Sujet :

APIs Google

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 26
    Points
    26
    Par défaut Afficher les coordonnées et adresse d'une infowindow sur un marker déplacé
    Bonjour à tous !

    Ce que je voudrais c'est que quand je déplace un marker et que je clique droit dessus, une infowindow s'ouvre et affiche les nouvelles coordonnées et adresse du marker déplacé.

    Je cherche le code qui va me pemettre de trouver et afficher les nouvelles coordonnées du marker ou de la nouvelle infowindow.

    J'ai donc testé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // Affichage coordonnees et adresse dans infowindow sur un marker par clic droit	
    google.maps.event.addListener(marker, 'rightclick', function (evt) {
           var content = "<div class='infowindow'>";
           content += "Latitude: " + evt.latLng.lat() + "<br/>";
           content += "Longitude: " + evt.latLng.lng() + "</div>";
           HandleInfoWindow(evt.latLng, content);
    });
    Puis la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function HandleInfoWindow(latLng, content) {
        infoWindow.setContent(content);
        infoWindow.setPosition(latLng);
        infoWindow.open(map,marker);
    }
    Mais cela ne donne rien quand je clique droit sur le marker.
    Merci de votre aide

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 089
    Points : 44 660
    Points
    44 660
    Par défaut
    Bonjour,
    Je cherche le code qui va me pemettre de trouver et afficher les nouvelles coordonnées du marker...
    un simple appel à la méthode getPosition() est largement suffisant.

    google.maps.Marker class.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    Merci ca marche très bien en utilisant ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('coords').value = marker.getPosition();
    Mais dans le cas ou je voudrais aussi afficher l'adresse comment faire ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 089
    Points : 44 660
    Points
    44 660
    Par défaut
    Si tu veux en plus récupérer l'adresse du point il te faut passer par un géocodage via l'objet google.maps.Geocoder.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    Je me suis aidé de cet exemple.

    J'inclus ces fonctions pour le reverse geocoding avant la fonction initialize()

    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
    var geocoder = new google.maps.Geocoder();	
     
    function geocodePosition(pos) {
      geocoder.geocode({
        latLng: pos
      }, function(responses) {
        if (responses && responses.length > 0) {
          updateMarkerAddress(responses[0].formatted_address);
        } else {
          updateMarkerAddress('Cannot determine address at this location.');
        }
      });
    }
     
    function updateMarkerPosition(latLng) {
      document.getElementById('coords').innerHTML = [
        latLng.lat(),
        latLng.lng()
      ].join(', ');
    }
     
    function updateMarkerAddress(str) {
      document.getElementById('coords2').innerHTML = str;
    }
    "coords" est l'ID d'une textbox affichant les coordonnées
    "coords2 est l'ID d'une textbox censée afficher l'adresse du marker deplacé

    Ensuite dans la fonction initialize() je demande à que les coordonnées et l'adresse soient affichées dans les deux textbox lors des evenements de deplacement du marker:

    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
     
            updateMarkerPosition(marker.getPosition());
    	geocodePosition(marker.getPosition());
     
     
    	google.maps.event.addListener(marker, 'dragstart', function() {
            updateMarkerAddress('Dragging...');	
    	});
     
    	google.maps.event.addListener(marker, 'drag', function() {
    		updateMarkerPosition(marker.getPosition());	
    		document.getElementById('coords').value = marker.getPosition();	
    	});	
     
    	google.maps.event.addListener(marker, 'dragend', function() {
    		document.getElementById('coords').value = marker.getPosition();
    		geocodePosition(marker.getPosition());
     
    	});
    Les coordonnées s'affichent bien dans la textbox "coords" quand on deplace le marker mais rien se s'affiche dans la textbox "coords2" censée afficher l'adresse.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 089
    Points : 44 660
    Points
    44 660
    Par défaut
    Le moins que l'on puisse dire est que tu n'a pas trouvé l'exemple le plus clean

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function updateMarkerAddress(str) {
      document.getElementById('coords2').innerHTML = str;
    }
    si ton élément est une TEXTAREA alors il ne possède pas de innerHTML mais une value.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    Oui je vais essayer de trouver un exemple plus clean...

Discussions similaires

  1. Afficher les tables et champs d'une base de données
    Par sovo dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 21/02/2008, 14h40
  2. Afficher les coordonnées d'un code postal sur une carte
    Par FredericB dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/12/2007, 16h54
  3. Réponses: 4
    Dernier message: 05/12/2007, 19h06
  4. [MySQL] Afficher les 3 derniere entrer d'une base
    Par keishah dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/08/2006, 21h40
  5. Afficher les coordonnées d'un layer dans des champs texte
    Par renaud26 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 15/08/2006, 13h53

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