Ver Mensaje Individual
  #24 (permalink)  
Antiguo 11/11/2012, 13:02
carlosuc99
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Exclamación Respuesta: For PHP en API Google Maps

Bueno,

Ahora me muestra el mapa pero no me muestra los marcadores.

A lo mejor, como ya ha pasado en otros posts, me he explicado mal por lo cual voy a repetir la explicación:

Tengo una tabla en la db llamada Airports. Ahí están todos los aeropuertos (con el tiempo se añaden y se quitan), lo que quiero es que en un mapa me muestre los aeropuertos que hay en la tabla y si pulsas se muestre un InfoWindow mostrando la variable "icao" y "city".

Según me dijisteis en posts anteriores, los InfoWindows se los debería poner yo, ¿dónde? ¿de la misma manera que los puse al principio, cuándo me dió el error, en la segunda respuesta (sin contar el post)?

De todas meneras, pongo el código al completo según va en el .php para que me echéis una mano en las dos dudas.

Código:
<?php
mysql_connect('XXXX', 'XXXX', 'XXXX(') or die('Ha habido un problema con la conexi&oacute;n al servidor.');
mysql_select_db('XXXX') or die('Ha habido un problema con la conexi&oacute;n a la base de datos.');

$query = mysql_query("SELECT * FROM Airports") or die('No se ha podido encontrar el origen'); 

?> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<style type="text/css"> 
  html { height: 100% } 
  body { height: 100%; margin: 0px; padding: 0px } 
  #map_canvas { height: 100% } 
</style> 
<script type="text/javascript" 
    src="http://maps.google.com/maps/api/js?sensor=false&amp;language=es"> 
</script> 
<script type="text/javascript"> 
  function initialize() { 
     
    
(function() 
{
	
	var Destinos = { 
      autozoom: true, 
      zoom: 5, 
      center: new google.maps.LatLng(40.84706, -2.944336), 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), Destinos); 
	var lat = [], lon = [], icao = [], city = [];
							
	var i = 0;

	<?php if ( mysql_num_rows($query) > 0){
		 for( $c = 0; $c < count($array_query); $c++ ){ ?>
		
			lat[i]  = <?php echo $array_query[$c]['Lan']; ?>;
			lon[i]  = <?php echo $array_query[$c]['Lon']; ?>;
			icao[i] = <?php echo $array_query[$c]['ICAO']; ?>; 
			city[i] = <?php echo $array_query[$c]['City']; ?>;
			i++;

		<?php }; ?>   
	<?php }; ?>
												
	var latLonCenter = new google.maps.LatLng( lat[0], lon[0] );    
						   
	window.onload = function() 
	{
		var options = {
			zoom: 5,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};

		map = new google.maps.Map(document.getElementById( 'map_canvas' ), options);

		for ( var i = 0; i < lat.length; i++ )
		{
			var latLng = new google.maps.LatLng( lat[c], lon[c] );
			getMarker( latLng, icao[c], city[c] );
		}  

		map.setCenter(latLonCenter);
	}
							
	function getMarker(latLng, icao, city)
	{
		var image = 'http://mapicons.nicolasmollet.com/wp-content/uploads/mapicons/shape-default/color-d22328/shapecolor-color/shadow-1/border-dark/symbolstyle-white/symbolshadowstyle-dark/gradient-no/airport.png'; 
		
		marker = new google.maps.Marker({
			position: latLng,
			map: map,
			draggable: false,
			animation: google.maps.Animation.DROP,
			icon: image,
			title: icao + ' ' + city
		});
	} 
})();
   
   
} 
         
        
   

</script> 
</head> 
<body onload="initialize()"> 
    <center><div id="map_canvas" style="width:650px; height:360px;"></div></center> 
</body>