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 :

API avec plusieurs points


Sujet :

APIs Google

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 27
    Points
    27
    Par défaut API avec plusieurs points
    Bonjour voici mon code


    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
     
       var dataECOLE = new Array();
                    dataECOLE[0] = new Array('Clermont-Ferrand', 'Pierre Henri',45.777101824345486,3.0833816528320312, 'Down', 'voiture', '<p>Retour</p>');
                    dataECOLE[1] = new Array('Toulouse', 'Vincent dupont',43.603018819924465, 1.4374923706054688, 'Up', 'Aller', '<p>Stage 1A</p>');
     
     
     
      map = new google.maps.Map(mapDiv, myOptions);
     
      var homeControlDiv = document.createElement('DIV');
      var homeControl = new HomeControl(homeControlDiv, map);
    map.controls[google.maps.ControlPosition.TOP_CENTER].push(homeControlDiv);
      var contenue;
                    var point;
                    var optionsMarker;
                    var marker;
     
                    for (var i = 0; i < dataECOLE.length; i++) {
                        point = new google.maps.LatLng(dataECOLE[i][2], dataECOLE[i][3]);
                        optionsMarker = {
                            position: point,
                            map: map,
                            title: dataECOLE[i][1]
                        }
                        marker = new google.maps.Marker(optionsMarker);

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 677
    Points
    44 677
    Par défaut
    Bonjour,
    problème de closure déjà rencontré et traité sur le forum.

    Question :
    Une seule InfoWindow pour tous les markers ou une InfoWindow par marker?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 27
    Points
    27
    Par défaut
    merci déjà de votre réponse.
    C'est en effet une infobulle par marker

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 677
    Points
    44 677
    Par défaut
    dans ce cas, et dans l'autre d'ailleurs, il existe plusieurs solutions dont celle d'ajouter une propriété au marker dans laquelle on stocke la référence à l'InfoWindow
    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
     
      var i, nb = dataECOLE.length;
      for( var i = 0; i < nb; i++) {
        point = new google.maps.LatLng(dataECOLE[i][2], dataECOLE[i][3]);
        optionsMarker = {
          position: point,
          map: map,
          title: dataECOLE[i][1]
        };
        marker = new google.maps.Marker(optionsMarker);
        var contentString =
          '<div id="conteneurInfoBulle">' +
          '<h1>' + dataECOLE[i][1] + '</h1>' +
          '<h2>Entreprise : ' + dataECOLE[i][4] + '</h2>' +
          '<div id="texteInfoBulle">' +
          '<div id="lettrineImage"><img src="' + dataECOLE[i][5] + '" title="Logo Entreprise" />' +
          '</div>' + dataECOLE[i][6] +
          '</div>' +
          '</div> ';
     
        // creation avant utilisation
        var infowindow = new google.maps.InfoWindow({
          content: contentString
        });    
        // Stockage infowindow pour open sur click
        marker._infowindow = infowindow;
        // ajout l'action sur onclick    
        google.maps.event.addListener(marker, 'click', function (){
          // ! IMPORTANT on utilise this et non pas marker
          this._infowindow.open( map, this);
        });    
      }
    il te restera à gérer l'empilage quand plusieurs seront proche et le reste...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 27
    Points
    27
    Par défaut
    Merci bcp !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/08/2014, 18h35
  2. [Google API v3] Calcul de distance entre plusieurs points
    Par akrogames dans le forum APIs Google
    Réponses: 1
    Dernier message: 08/04/2010, 17h35
  3. [Google Maps] Carte avec plusieurs KML chargés
    Par SylvainM dans le forum APIs Google
    Réponses: 1
    Dernier message: 19/06/2009, 14h36
  4. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 18h03
  5. Shortcut avec plusieurs touches
    Par scorpiwolf dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/07/2002, 15h57

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