Bonjour,
je suis nouveau ici et merci pour ce forum quant aux nombreuses informations qu'il contient.
Je développe actuellement sur une interface Google Maps pour un affichage des refuges dans les Pyrénées. Sur le serveur de développement, il n'y a pas de problèmes, l'affichage de mes cabanes se passent normalement. Par contre, dès que je passe le site sur le serveur de développement mon fichier XML renvoyé est considéré comme vide.
Voici ici la version de développement : http://dev.apem.asso.fr/google_maps/ajax.html
et ici la version sur le serveur de prod : http://www.pyrenees-refuges.com/goog...ogle_maps.html
Pourtant le fichier XML a l'air bien formé et est renvoyé par le script PHP.
côté client :
côté serveur :Code:
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 function getMarkers(north,south,west,east){ var urlstr="./read.php?north="+north+"&south="+south+"&west="+west+"&east="+east; var request = GXmlHttp.create(); request.open('GET', urlstr , true); request.onreadystatechange = function () { if (request.readyState == 4) { if (request.status == 200) { var xmlDoc = request.responseXML; locations = xmlDoc.documentElement.getElementsByTagName("location"); //alert(locations.length); markers = []; if (locations.length){ for (var i=0;i<locations.length;i++){ markers[i] = new GMarker(new GLatLng(locations[i].getAttribute("lat"),locations[i].getAttribute("lng")),{icon:G_DEFAULT_ICON}); markers[i].infowindow = locations[i].getAttribute("name")+"<br>"+locations[i].getAttribute("vallee")+"<br>"+locations[i].getAttribute("lat"); markers[i].small_infobulle = "<br><b>"+locations[i].getAttribute("name")+"</b><br>"+locations[i].getAttribute("vallee")+"<br><br>"; markers[i].title = locations[i].getAttribute("name"); markers[i].markerindex = i; markers[i].db_id = locations[i].getAttribute("id"); map.addOverlay(markers[i]); } } } } } request.send(null); }
J'ai lu qu'il pouvait y avoir des problèmes par rapport aux caractères accentués présents en base de données. J'ai essayé en encodant le fichier XML en utf-8 et iso, rien ne change.Code:
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 require ("../admin/refuge-conf.php"); $north=$_GET["north"]; $south=$_GET["south"]; $east=$_GET["east"]; $west=$_GET["west"]; $sql = "select gid,nom,astext(the_geom) as geom,vallee from refuges where Contains (GeometryFromText('POLYGON((".$east." ".$north.",".$west." ".$north.",".$west." ".$south.",".$east." ".$south.",".$east." ".$north."))',-1),refuges.the_geom)"; $res = postgres($sql); // Date in the past header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // always modified header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // HTTP/1.1 header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); // HTTP/1.0 header("Pragma: no-cache"); //XML Header header("content-type:text/xml"); echo "<locations>"; while ($result=pg_fetch_array($res)){ $latlon=substr($result["geom"],6,strlen($result["geom"])-7); $coord=explode(" ",$latlon); if (($coord[0]<>0)and($coord[1]<>0)){ echo "<location id='".$result["gid"]."' name='".$result["nom"]."' lat='".$coord[1]."' lng='".$coord[0]."' vallee='".$result["vallee"]."'/>"; } } echo "</locations>";
Avez-vous des pistes ?
Fabien.
[Edit] : c'est bien un problème d'accent, lorsque je zoome sur une zone où les cabanes n'ont pas de noms accentués, ça fonctionne.
[Résolu] : le problème ne venait pas des accents mais des apostrophes contenus en base de données