Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/11/2009, 07:38
marcelogdiaz
 
Fecha de Ingreso: noviembre-2009
Mensajes: 21
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: mashup google maps con PHP y MYSQL

Hola Jakuam!

ANtes que nada una sugerencia, separa Js de PHP para organizar y detectar mas rapido los errores; tambien podes usar Firebug (tool para Firefox) para detectar errores y demas.

Lo que haria seria algo parecido a:
1-armar JS con llamada Ajax para obtener los datos del servidor
2-en el servidor hacer la consulta a la base de datos y retornar un xml con los resultados
3-a la vuelta del servidor, parsear el xml con Dom y armar los markers con la informacion.

Acá va algo de ayuda en codigo, para los pasos 1 y 3:

Código:
function getMyMarkers() {
	var request = GXmlHttp.create();
	//tell the request where to retrieve data from.
	request.open('GET', 'file.php', true);
	//tell the request what to do when the state changes.
	request.onreadystatechange = function() {
	  if (request.readyState == 4) {
	  var xmlDoc = request.responseXML;
	  var markers = xmlDoc.documentElement.getElementsByTagName("marker");
		for (var i = 0; i < markers.length; i++) {
			var lng = markers[i].getAttribute("lng");
			var lat = markers[i].getAttribute("lat");
			//check for lng and lat so MSIE does not error
			//on parseFloat of a null value
			if(lng && lat) {
				var latlng = new GLatLng(parseFloat(lat),parseFloat(lng));
				var html = '<div>new marker</div>';
				var iconImage = markers[i].getAttribute("icon");
				var marker = createMarker(latlng, html, iconImage);
				map.addOverlay(marker);
			}
		} //for
		} //if
	} //function
	request.send(null);
}
Para el paso 2:

Código PHP:
    $result = mysql_query(".....");
    $count = mysql_num_rows($result);
    
    //header('Content-Type: text/html');
    //echo ($count);
    

    header('Content-Type: text/xml');
    if($count > 0){

           $xml_data ="<?xml version='1.0' encoding='UTF-8'?>";
           while ($row = mysql_fetch_assoc($result)) {
               $marker = "<marker lat='".$row["lat"]."'";
               $marker .= "lng='".$row["lng"]."'";
               $marker .=  "zoom='".$row["zoom"]."'></marker>";
               $xml_data .= $marker;
               }

                 $xml_data .="</xml>";
        mysql_close($conn);
        //armar el xml
        echo $xml_data;
    }
Espero q haya servido de ayuda...exitosssss