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 :
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
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);
	    }
côté serveur :
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
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>";
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.

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