Ver Mensaje Individual
  #30 (permalink)  
Antiguo 13/11/2012, 09:01
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

Cita:
Iniciado por txemaarbulo Ver Mensaje
Como te decía más arriba, personalmente desarrollo el php fuera del javascript, tomando los valores del primero mediante campos ocultos u otros archivos (XML preferentremente).

Tomando tu código: prueba mediante alert comprobar que infowindows recoge lo que deseas. Para ello, inmediatamente después de var Airport1 = '<h3 align="center" style="font-family:Arial, Helvetica, sans-serif"><?php echo $icao; ?> - <?php echo $city; ?></h3>'; despliega el alert:
Código Javascript:
Ver original
  1. var Airport1 = '<h3 align="center" style="font-family:Arial, Helvetica, sans-serif"><?php echo $icao; ?> - <?php echo $city; ?></h3>';
  2. alert (Airport1);

Se repetirá el alert tantas veces como marcadores tengas.

Si te funciona y es lo que quieres, elimina el alert y cambia:
Código Javascript:
Ver original
  1. google.maps.event.addListener(marker, 'click', function() {
  2.     infowindow.open(map,marker);
  3.     });
por
Código Javascript:
Ver original
  1. google.maps.event.addListener(marker, 'click', function () {
  2.       var n = 1;
  3.       var infowindow = new google.maps.InfoWindow({
  4.         content: "",
  5.         maxWidth: 320,  //Ancho de ventana infowindows en px
  6.         zIndex: n // para que el último infowindows se superponga
  7.       });
  8.       infowindow.setContent(this.Airport1);
  9.       infowindow.setZIndex(n++);  // superpone el último infowindows
  10.       infowindow.open(map, this);
  11.     });

Si te funciona, envía un enlace para verlo. Como te dije, tengo siempre mis dudas en el binomio PHP - Javascript.
Vaya, ahora tampoco va hahaha. Con el Alert me muestra los Alerts de todos los aeropuertos correctamente. Pero al pulsar para mi desilusión (jeje) no pasa nada en ningún aeropuerto.

Lo he dejado así:

Código Javascript:
Ver original
  1. <?php
  2.  
  3. $query = mysql_query("SELECT * FROM Airports") or die('No se ha podido encontrar el origen');
  4.  
  5. ?>
  6.     <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  7. <style type="text/css">
  8.   html { height: 100% }
  9.   body { height: 100%; margin: 0px; padding: 0px }
  10.   #map_canvas { height: 100% }
  11. </style>
  12. <script type="text/javascript"
  13.     src="http://maps.google.com/maps/api/js?sensor=false&amp;language=es">
  14. </script>
  15. <script type="text/javascript">
  16.  
  17.  
  18. window.onload = function () {
  19.   var options = {
  20.     zoom: 5,
  21.     center: new google.maps.LatLng(40.84706, -2.944336),
  22.     mapTypeId: google.maps.MapTypeId.ROADMAP
  23.   };
  24.  
  25.   map = new google.maps.Map(document.getElementById('map_canvas'), options);
  26.  
  27.  
  28.   <?php
  29.         for($i = 0; $i < mysql_num_rows($query); $i++){
  30.             $lat = mysql_result($query, $i, 'Lat');
  31.             $lon = mysql_result($query, $i, 'Lon');
  32.             $icao = mysql_result($query, $i, 'ICAO');
  33.             $city = mysql_result($query, $i, 'City');
  34.         ?>
  35.   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';
  36.   var latLonCenter = new google.maps.LatLng(<?php echo $lat; ?>, <?php echo $lon; ?>);
  37.   marker = new google.maps.Marker({
  38.     position: latLonCenter,
  39.     map: map,
  40.     draggable: false,
  41.     icon: image,
  42.     title: '<?php echo $icao; ?> - <?php echo $city; ?>'
  43.   });
  44.  
  45.  
  46.     var Airport1 = '<h3 align="center" style="font-family:Arial, Helvetica, sans-serif"><?php echo $icao; ?> - <?php echo $city; ?></h3>';
  47.  
  48.     var infowindow = new google.maps.InfoWindow({
  49.     content: Airport1
  50.     });
  51.  
  52.  
  53.     google.maps.event.addListener(marker, 'click', function () {
  54.       var n = 1;
  55.       var infowindow = new google.maps.InfoWindow({
  56.         content: '<h3 align="center" style="font-family:Arial, Helvetica, sans-serif"><?php echo $icao; ?> - <?php echo $city; ?></h3>',
  57.         maxWidth: 320,  //Ancho de ventana infowindows en px
  58.         zIndex: n // para que el último infowindows se superponga
  59.       });
  60.      
  61.       infowindow.setContent(this.Airport1);
  62.       infowindow.setZIndex(n++);  // superpone el último infowindows
  63.       infowindow.open(map, this);
  64.     });
  65.  
  66. <?php } ?>
  67.  
  68. }
  69. </script>
  70.   </head>
  71.  
  72.   <body>
  73.     <center><div id="map_canvas" style="width:650px; height:360px;"></div></center>
  74.   </body>

Si quieres la URL te la dejo por privado.