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 marqueurs sur ma carte


Sujet :

APIs Google

  1. #1
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2010
    Messages : 414
    Points : 111
    Points
    111
    Par défaut Afficher les marqueurs sur ma carte
    Bonjour,

    Je cherche à afficher les marqueurs sur ma carte google maps. J'ai une base de données dans laquelle sont stockés les coordonnées de mes points de marqueurs. J'arrive à afficher la carte mais pas les marqueurs. Voici mes codes et fichiers, merci de votre aide :

    index-map.php :
    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
    <!DOCTYPE html>
    <html>
        <head>
            <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
            <meta charset="utf-8">
            <title>Google Maps JavaScript API v3</title>
            <style>
            html, body {
                height: 100%;
                margin: 0;
                padding: 0;
            }
     
            #map_canvas {
                height: 400px;
                width: 700px;
                margin:50px auto;
            }
            </style>
            <script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
     
            <script>
    		$(document).ready( function () {
        // Paramétrage des marqueurs
        var pinColor = "29aec3";// couleur des épingles google MAP
        var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor,
            new google.maps.Size(21, 34),
            new google.maps.Point(0,0),
            new google.maps.Point(10, 34));
        var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow",
            new google.maps.Size(40, 37),
            new google.maps.Point(0, 0),
            new google.maps.Point(12, 35));
     
            function initialiser() {
                var mapOptions = {
                    zoom: 6,
                    center: new google.maps.LatLng(48,2),
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                }
                var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
            // Récupération en AJAX des données des lieux à épingler sur la carte Google map
        $.ajax({
           url   : 'index-map-ajax.php',
           error : function(request, error) { // Info Debuggage si erreur         
                     alert("Erreur sous genre - responseText: "+request.responseText);
                    },                
        dataType : "json",  
        success  : function(data){
                      $("#map_canvas").fadeIn('slow');
                      var infowindow = new google.maps.InfoWindow();    
                      var marker, i;   
                      // Parcours des données reçus depuis le fichier index-map-ajax.php
                      // Récupération de LatLng, Hint et Legende de chaque lieu et création d'un marqueur
                      $.each(data.items, function(i,item){
                         if (item) {
                            if (item.LatLng_lieu!=''){
                               // On sépare la latitude et la longitude
                               var strLatLng = item.LatLng_lieu.split(',');
                               marker = new google.maps.Marker({
                                 position : new google.maps.LatLng(strLatLng[0], strLatLng[1]),
                                 map      : map_canvas,
                                 icon     : pinImage,
                                 shadow   : pinShadow,
                                 title    : item.Titre_lieu
                                });          
                      google.maps.event.addListener(marker, 'click', (function(marker, i) {
                       return function() {
                       // Affichage de la légende de chaque lieu
                       infowindow.setContent('<a target="_blank" href="'+item.Url_lieu+'"><br/>'+item.Titre_lieu+' </a> ');
                       infowindow.open(map_canvas, marker);
                      }
                    })(marker, i));                              }         
                    //alert('Vérification données reçues '+item.Titre_lieu+' -- '+item.Url_lieu+ ' -- '+item.LatLng_lieu);
                  }
                });                        
              }
            }); 
          }initialiser();
    	    })
            </script>
        </head>
        <body onload="initialiser()">
            <div id="map_canvas"></div>
        </body>
    </html>
    index-map-ajax.php :

    Code php : 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
    <html>
     
    <?php
      // Accès à la base de données
      $serveur     = "localhost";
      $utilisateur = "root";
      $motDePasse  = " ";
      $base        = "geolocalisation";
      mysql_connect($serveur, $utilisateur, $motDePasse);
      mysql_select_db($base) or die("Base de données inactive. ");
      // $items est la chaîne contenant l'objet JSON des données
      $items = '';
     
      // Parcours des lieux
      $result = mysql_query("SELECT* FROM lieux ");
      WHILE ($row = mysql_fetch_object($result)) {   
       // Ecriture des données sous format JSON   
    $items .= <<<EOD
       { "LatLng_lieu" : "$row->latlng_lieu",
         "Titre_lieu"  : "$row->titre_lieu",
         "Url_lieu"    : "$row->url_lieu"},
    EOD;
        }
        mysql_free_result($result);
     
      // On enlève la dernière virgule
      if ($items != ''){
         $items = substr($items, 0, -1);
      }
     
      // Ecriture de la liste des lieux en format JSON
        header('Content-type: application/json');
        ?>
        {   
            "items": [
                      <?php echo $items;?>
                      ]
        }
    </html>

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 120
    Points : 44 917
    Points
    44 917
    Par défaut
    Bonjour,
    si je comprends bien ta démarche
    - chargement de la page
    - initialisation de la map
    - appel Ajax pour récupération des datas marqueurs

    pourquoi ne pas mettre en dur dans la partie javascript les datas marqueurs via PHP ?

    Remarque :
    signifie qu'en retour il est attendu un objet JSON ce que ne fait pas ton fichier index-map-ajax.php.

Discussions similaires

  1. Infobulle sur les marqueurs d'une carte
    Par cocomatt dans le forum APIs Google
    Réponses: 0
    Dernier message: 21/02/2010, 18h32
  2. Réponses: 2
    Dernier message: 20/08/2007, 07h34
  3. Afficher les parametres sur le rapport
    Par tatayoyo dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 28/11/2006, 10h16
  4. [MySQL] Afficher les résultats sur 3 colones et 2 lignes
    Par Meewix dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/10/2006, 23h14
  5. Afficher les logs sur son desktop
    Par Olivier Regnier dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 16/09/2006, 12h09

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