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 :

Infobulle des marqueur - Api v3 [Google Maps]


Sujet :

APIs Google

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 121
    Par défaut Infobulle des marqueur - Api v3
    Bonjour,

    Je développe avec l'api v3 de Google Map.

    J'ai réalisé une application me permettant d'afficher sur une carte les marqueurs correspondant à des adresses situées dans un fichier xml.

    J'ai ajouté à ces marqueurs une infobulle afin d'indiquer le nom et l'adresse correspondante.

    Or avec l'api V3, les infobulles restent ouvertes même quand on clique sur un autre marqueur.

    Je cherche une solution pour retrouver le fonctionnement de la v2 qui fermait l'infobulle lorsqu'on cliquait sur un autre marqueur.

    Voici la partie de code Javascript correspondante:
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    /*
    Fonction appellée au chargement de la page index.php
    Parametres: les coordonnées du point de centrage de la carte et le niveau de zoom
    */
    function load(lat,lng,zoom) 
    {
    	//Définition du point central de la carte
        var coord_centre = new google.maps.LatLng(lat, lng);
    	//Définitions des options de la carte
        var option = {
          zoom: zoom,
          center: coord_centre,
    	  scaleControl: true,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        }
    	//Création de la carte dans le div correspondant et avec les options précédentes
        map = new google.maps.Map(document.getElementById("div_map"), option);
    	//Instanciation d'un objet Geocoder pour conversion des adresses postales en coordonnées GPS
    	geocoder = new google.maps.Geocoder();
    	//Lecture du fichier xml et création des marqueurs    
    	downloadUrl("markers.xml", function(data) {
    		var markers = data.documentElement.getElementsByTagName("marker");
    		for (var i = 0; i < markers.length; i++) 
    		{
    			CreerMarker(markers[i].getAttribute("nom"),markers[i].getAttribute("adresse"));
    		}
    	});
    }
     
    /*
    Fonction de création des marqueurs
    Parametres: l'adresse postale et le nom à afficher
    */
    function CreerMarker(nom, adresse)
    {
    	geocoder.geocode( { 'address': adresse}, function(results, status) 
    	{
    		if (status == google.maps.GeocoderStatus.OK) 
    		{			
    			//Si adresse trouvée, création du marqueur
    			var marker = new google.maps.Marker({
    				map: map, 
    				position: results[0].geometry.location,
    				title: nom
    			});
    			//Ajout de la fenetre d'informations au marqueur
    			var contenu = nom+"<br />"+adresse;
       			var infowindow = new google.maps.InfoWindow({
            		content: contenu
        		});
    			//Création du listener du clic de souris sur le marqueur
    			google.maps.event.addListener(marker, 'click', function() {
    				infowindow.open(map,marker);
        		});
    		}
    		else
    		{
    			alert("Géolocalisation échouée a cause de: " + status);
    		}
    	});	
    }
    Je vous ai joint également un screenshot du résultat pour illustrer le problème.

    J'ai trouvé ceci sur un site, mais je ne suis pas arrivé à le mettre en pratique:
    Ok, one more question and I’m covered (I hope). I made all the different infowindows appear, how can I close the others when I click and open a new one?
    Tried closeInfoWindow(); in the listener function but it disables all of them…


    The easiest way to do this is to just have one instance of the InfoWindow object that you reuse over and over again. That way when you click a new marker the infoWindow is “moved” from where it’s currently at, to point at the new marker.
    Use its setContent method to load it with the correct content.
    Si vous avez une solution, je suis preneur.
    Images attachées Images attachées  

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

Discussions similaires

  1. [Google Maps] Afficher des marqueurs au passage de la souris
    Par Maxrb dans le forum APIs Google
    Réponses: 1
    Dernier message: 11/06/2010, 11h48
  2. Affichage des marqueurs
    Par niepoc dans le forum MATLAB
    Réponses: 2
    Dernier message: 09/06/2008, 16h36
  3. Configuration des marqueurs XITI
    Par javelot69 dans le forum Statistiques
    Réponses: 2
    Dernier message: 03/10/2007, 11h40
  4. Forme des marqueurs sur courbe
    Par anneso108 dans le forum SAP Crystal Reports
    Réponses: 10
    Dernier message: 05/04/2006, 23h08
  5. Réponses: 3
    Dernier message: 04/09/2002, 09h42

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