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 :

Différents marqueurs avec des infobulles pour chacun [Google Maps]


Sujet :

APIs Google

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 92
    Points
    92
    Par défaut Différents marqueurs avec des infobulles pour chacun
    Bonjour,

    Voici ce que je veux faire : afficher une dizaine de marqueurs sur une carte et chaque doit avoir un événement 'click' pour
    pouvoir ouvrir une info-bulle avec un contenu particulier dans chaque info-bulle.

    J'ai pu affiché mes 10 marqueurs sur la carte, mais comme je fais une boucle pour afficher les marqueurs, j'applique un événement 'click' et une info-bulle, mais quand je clique sur un marqueur l'info-bulle s'ouvre toujours au même endroit.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Ceci marche bien en allant chercher le contenu des infobulles dans une base sql. Comme vous n'avez pas spécifié d'où venait le data à mettre dans ces infosbulles, il est difficile de vous aider.
    Cela vous donnera quand même une idée. Good luck.
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
     <script type="text/javascript">
        //<![CDATA[
     
        infos = [];
     
        function load() {
     
     
          var myOptions = {
          zoom: <?php echo $K['map_zoom'] ?>,
          center: new google.maps.LatLng(mylatlon),
           // center: new google.maps.LatLng(47.6145, -122.3418),
          mapTypeId: google.maps.MapTypeId.HYBRID
        };
     
          var map = new google.maps.Map(document.getElementById("googmap"), myOptions);
          // Change this depending on the name of your PHP sql to xml file
          downloadUrl("sql_to_xml.php", function(data) { // download d'un fichier xml généré à partir d'une base mysql
          var xml = data.responseXML;
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i <  markers.length; i++) {      
     
            var country = markers[i].getAttribute("country");
            var city = markers[i].getAttribute("city");
            var zip = markers[i].getAttribute("zip");
            var county = markers[i].getAttribute("county");
            var state = markers[i].getAttribute("state");
            var latit = markers[i].getAttribute("lat");
            var longi = markers[i].getAttribute("lng");
            var code = markers[i].getAttribute("countcod");
            var time = markers[i].getAttribute("time");
            var point = new google.maps.LatLng(
                parseFloat(markers[i].getAttribute("lat")),
                parseFloat(markers[i].getAttribute("lng")));
     
    // les php echo viennent d'une gestion multilingues des titres et textes...
     
            var html ="<div style='font-size: 0.7em;'>"+"<span style='font-size: 14px; font-weight:bold; color:blue;'>"+"<?php echo $K['lg']['guest'] ?>"+"<\/span>" +"<?php echo '<b>'.$K['lg']['from'].'<\/b>' ?>";
            html += "<br />"+"<?php echo '<b>'.$K['lg']['city'].':&nbsp;<\/b>' ?>"+city+"&nbsp;&nbsp;&nbsp;&nbsp;"+"<?php echo '<b>'.$K['lg']['zip'].':&nbsp;<\/b>' ?>"+zip+"<br />"+"<?php echo '<b>'.$K['lg']['st'].':&nbsp;<\/b>' ?>";
            html += state+"&nbsp;&nbsp;&nbsp;&nbsp;"+"<?php echo '<b>'.$K['lg']['county'].':&nbsp;<\/b>' ?>"+county+  "<br /><span style='font-size: 12px;  color:blue;'>"+"<?php echo '<b>'.$K['lg']['country'].':&nbsp;<\/b>' ?>"+country+"<\/span><\/div>";
     
             var icon = customIcons['code'] || {};  // va chercher des icônes dans un dossier... oublier les apostrohes autour de   code...
                var marker = new google.maps.Marker({
                map: map,
                position: point,
                icon: icon.icon,
                shadow: icon.shadow,
                content:html,    // c'est ici que se focalise votre problème
                animation: google.maps.Animation.DROP
              });
              // BEGIN close info windows by a click anywhere on the map
               google.maps.event.addListener(map, 'click', function() {
               closeInfos();
              });
              // END close info windows by a click anywhere on the map
               google.maps.event.addListener(marker, 'click', function() {
               closeInfos();
               var info = new google.maps.InfoWindow({content: this.content});
               info.open(map,this);
               infos[0]=info;
              });
     
     
            });
    }
     
    function closeInfos(){
       if(infos.length > 0){
          infos[0].set("marker",null);
          infos[0].close();
          infos.length = 0;
       }
    }
     
    function downloadUrl(url, callback) {
          var request = window.ActiveXObject ?
              new ActiveXObject('Microsoft.XMLHTTP') :
              new XMLHttpRequest;
     
          request.onreadystatechange = function() {
            if (request.readyState == 4) {
              request.onreadystatechange = doNothing;
              callback(request, request.status);
            }
          };
          request.open('GET', url, true);
          request.send(null);
    }
     
    function doNothing() {}
    //]]>
    </script>
    Hope it helps...!

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    bonjour,
    a ce que tu veux afficher chaque marqueur avec son infobulle sur ta carte
    et de quel version tu es travaille : V3 ou V2 ?
    j'attende ta réponse pour ta idée

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 92
    Points
    92
    Par défaut
    J'utilise la V3 de l'API

    Chaque marqueur doit avoir sa propre infobulle, les données qui seront dans l'infobulle sont mises en dur

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    bonjour,
    je propose le code en dessous, il y afficher chaque marqueur avec son info-bulle mais le description de chaque info-bulle ça donne par (Données cartographiques ©2011 Google), mais si tu peux utiliser sur ta choix je pense que tu es obliger de crée une base de donnée et d'un serveur script (dans ce cas si tu veux, dit a moi pour je donne tous les information supplémentaire)

    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
     
    //Afficher marqueure 
    function createMarker(lat, lng, titre, description){
    var latlng = new google.maps.LatLng(lat, lng);
    var marker = new google.maps.Marker({
    position: latlng,
    map: map,
    title: titre
    });
    var infobulle = new google.maps.InfoWindow({
    content: description
    });
    google.maps.event.addListener(marker, 'click', function(){
    infobulle.open(map, marker);
    });
    }// fin fonction afficher marqueure avec son infobulle

    toujours pour votre soutien
    cordialement Tina24

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

Discussions similaires

  1. Decode avec des dates pour calculer une valeur
    Par decisio dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/01/2009, 13h50
  2. Réponses: 4
    Dernier message: 21/03/2008, 18h40
  3. Problème avec des beugs pour les mex-files
    Par fatenov dans le forum MATLAB
    Réponses: 2
    Dernier message: 30/11/2007, 02h26
  4. Linker un .o avec des archives pour faire un exe
    Par vdumont dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 23h33
  5. Réponses: 6
    Dernier message: 23/05/2005, 16h38

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