Ayuda Php-Mysql, google Maps v3

Iniciado por sandrich, 8 Marzo 2012, 13:52 PM

0 Miembros y 2 Visitantes están viendo este tema.

sandrich

Hola amigos del foro, estoy trabajando con Php-mysql y google maps, tengo un problema al querer mostrar el infoWindows correspondiente de cada punto que voy recogiendod e mi base de datos. He lestado googleando, pero no le encuentro solución, en la V2 no tenía problema, pero opté por cambiar a la versión 3 ya que no necesita el API key.
Mí codigo es este:
-------------------------------------
<?php
//Quita los mensajes de  noticias
error_reporting(E_ALL & ~E_NOTICE);
//Incluyo el archivo de conexión
require("conexion.php");

//Guarda la variable que viene del formulario
$criteriotxt = $_POST["criterio"];
$criterio = ucfirst($criteriotxt);

    //Si criterio no esta vacio, entrega los datos ingresados por el usuario
   if ($criterio != "") {
    //Consulta todos los puntos de la tabla emp_turisticos
   $query = "SELECT * FROM mi_tabla WHERE
                                    nombre like '%$criterio%' OR
                                    apellido like '%$criterio%' OR
                                     empresa like '%$criterio%' OR
                                    direccion like '%$criterio%'";
                                    
   $queTurismo = mysql_query($query, $conexion);
   //Si criterio está vacio que cargue todos los datos
}elseif ($criterio == "") {
   //Consulta todos los puntos de la tabla
   $query = "SELECT * FROM mi_tabla";
   $queTurismo = mysql_query($query, $conexion);
}
?>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- A continuación incluyo la llamada a la API Google Maps-->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
</script>

  <script type="text/javascript">
  function initialize() {
    var myOptions = {
      zoom: 15,
      center: new google.maps.LatLng(-43.118027, -73.613099),
      mapTypeId: google.maps.MapTypeId.TERRAIN
    }
     var map = new google.maps.Map(document.getElementById("map"), myOptions);

    //Ventanas de información
     var infowindow = new google.maps.InfoWindow({
          content: 'No puedo mostrar la información de la DB' //Acá tengo problemas, NO SÉ como llamar las variables de mi tabla
       }); //Close infowindows
   
   //Imprimimos los datos de la DB, por lat/long
   <?php while ($rsTurismo = mysql_fetch_assoc($queTurismo))
    {
    ?>
         var image     = 'img/cafe.png';
        var myLatLng  =  new google.maps.LatLng(<?php echo $rsTurismo['lat']; ?>, <?php echo $rsTurismo['lng']; ?>);
       var nombre    =  <?php echo "\"" . $rsTurismo['nombre'] . "\""; ?>;
       var apellido  =  <?php echo "\"" . $rsTurismo['apellido'] . "\""; ?>;
       var empresa   =  <?php echo "\"" . $rsTurismo['empresa'] . "\""; ?>;
       var direccion =  <?php echo "\"" . $rsTurismo['direccion']. "\"";  ?>;
        var telefono  =  <?php echo "\"" . $rsTurismo['telefono']. "\"";  ?>;

        //Vamos añaddiendo el marcador
       var marker    =  new google.maps.Marker(
        {
          position: myLatLng,
         draggable:false,
          animation: google.maps.Animation.DROP,
          map: map,
          icon: image
       });//Close marker

       google.maps.event.addListener(marker, 'click', function() {
       infowindow.open(map, marker);
      });
  <?php } ?>/*Cierre del While*/
}//cierre de la función load()
  </script>
........
.........
.......
Me muestra los puntos sin problemas, pero no sé como hacer para que me muestre el infowindows al hacer clic sobre un punto.

Desde ya muchas gracias amig@s

Sandro

Mi correo es: sandrilloalvarez@hotmail.com
Por si alguien quiere compartir ideas del tema

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

sandrich

Muchas Gracias amigo, funciona el Infowindows que necesitaba perfectamente...

Una cosa, por ejemplo.
     mostrarMensaje( marker, structMap['lugares']['nombre_lugar'] );
la cambié por:      mostrarMensaje( marker, nombre, apellido, etc...);

En la función la dejé tal cual:         function mostrarMensaje(marker, msg) {
y el content: msg

Me muestra solo el nombre...
Por qué podría ser???

Muchas gracias nuevamente

sandrich

Solucionado amigo, guardé los campos en una variable y luego lo imprimí.

Gracias

Shell Root

Porqué msg es un sólo parámetro, así que deberías de ponerlo todo concatenado, es decir,
Código (javascript) [Seleccionar]
mostrarMensaje( marker, strNombre + ' ' + strApellido );

Pero creo que debería ser mejor tenerlo todo en una variable (así como supongo que tienes)
Código (javascript) [Seleccionar]
strMessage = strNombre + ' ' + strApellido;
mostrarMensaje( marker, strMessage );

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.