Bonjour,
J'ai essayé googlemap en lui envoyant une adresse dans un fichier php(l'exemple basique).Maintenant je veux aller plus loin et je rencontre un leger pb. Je récupère mes données d'une base Mysql et je les récupère dans un fichier xml puis les parses ensuite pour les envoyer à au geocodeur de googlemap. mais j'ai en retour une page avec la carte mais sans les marqueurs.j'ai une alert en javascript"null not found". message explicite,mais un peu étonnant puisaue c'est les mêmes adresses que j'ai essayé individuellment dans mon exemple basique. Je suis sur lycos(gratuit). J'ai testé le fichier xml, il bien rempli.
voici mes sources:
la page principale:index.html
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
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <title>GoogleMap,php & mysql</title>
<head>
<!immport de la librairie google en utilisant la clé. cette librairie est fournie par la classe GMap2>
 <script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAAbzRrg6xEmV5lgEvzTucjJxTbbWD8NRdNNmVtZnHkcgYVQ52YvBRgLjpW7CsQZaB3ot74TuZtcTIuxw" type="text/javascript"></script>
  </head>
 
    <script type="text/javascript">
        //<![CDATA[
 
function load() {
      if (GBrowserIsCompatible()) {<!--si le navigateur est compatible -->
 
        var map = new GMap2(document.getElementById("map")); <!--instanciation de l'objet GMap2 (la carte ) qui fournit les methodes getLatLng pour le géocodage-->
        map.addControl(new GSmallMapControl());<!--ajout des controles de zoom et déplacement au format mini-->
           map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng (49.3 , -1.4), 10);<!--positionnement initial de la map (ici la france) -->
        geocoder = new GClientGeocoder();<!--création de l'objet geocoder (nécessaire pour la localisation des adresse)-->
 
        //chargement du fichier xml généré par un script php
            GDownloadUrl("http://membres.lycos.fr/geolocalisation/exportToXML.xml", function(exportToXML,responseCode) {
          var xml = GXml.parse(exportToXML);
          var markers = xml.documentElement.getElementsByTagName("marker");
 
          for (var i = 0; i <markers.length; i++) {<!--parcours du fichier xml pour récupérer les différentes adresses-->
                var adresse =markers[i].getAttribute("adresse");
                var ville = markers[i].getAttribute("ville");
                var codePostale = markers[i].getAttribute("codePostale");
                var pays = markers[i].getAttribute("pays");
                 showAddress(adresse,ville,codePostale,pays);<!--geocodage des adresses et ajout de markers à la carte par la fonction showAddress-->
          }
        });
      }
 
}
 
 
function showAddress(address) {
  geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
        alert(address + " not found");
      } else {
      <!--centrer la carte sur le point-->
        map.setCenter(point, 13);
        var marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(address);
            return marker;
          }
    }
  );
 
}
 
 
 
    //]]>
 </script>
   <body onload="load()" onunload="GUnload()"> 
  <!--l'endroit où la carte sera déssinée est prédimensionné-->
    <div id="map" style="width:600px;height:400px"></div>    
 
    <script type="text/javascript">    document.write(pays); </script>
    </body>
    </html>
le fichier de connexion à la base de donnée et création du xml
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
 
<?php  //header ('Content-Type: text/html; charset=utf-8;');
//Start XML file, create parent node
 
$xml = '<?xml version="1.0" encoding="utf-8"?>'.'<markers>';
 
   // Connect to the MySQL database
   $conn = mysql_connect("localhost", "geolocalisation", "");
 
   // Select the database
   $db = mysql_select_db("geolocalisation_fr_db");
 
   // Query the table
   $query = "SELECT  * FROM geocodes";
   $result = mysql_query($query) or die(mysql_error("requ鳥 echec"));
   //header("Content-type: text/xml");
 
 
 
 
   //Loop through each row, submit HTTP request, output coordinates
   //echo "<table border='2'><tr><th>Adresse<th>Ville<th>Pays<th>Longitude<th>Latitude</tr>";
   // Iterate through the rows, printing XML nodes for each
 
   while ($row = mysql_fetch_array($result)){
 
 $xml .= '<marker>';
 $xml .= '<adresse>'.$row['adresse'].'</adresse>';
 $xml .= '<ville>'.$row['ville'].'</ville>';
$xml .= '<codePostale>'.$row['codePostale'].'</codePostale>';
 $xml .= '<pays>'.$row['pays'].'</pays>';
$xml .= '</marker>'; 
} 
 
$xml .= '</markers>';
 
   $fp = fopen("exportToXML.xml", 'w+');
     fputs($fp, $xml);
    fclose($fp);
 
echo 'Export XML effectue !<br><a href="exportToXML.xml">Voir le fichier</a>';
 
?>
merci de votre disponibilité