Foros del Web » Programando para Internet » Javascript » Frameworks JS »

google maps, php y mysql

Estas en el tema de google maps, php y mysql en el foro de Frameworks JS en Foros del Web. Estimados amigos del foro, hace un tiempo he estado trabajando con php, google maps y mysql. Ahora he querido que me muestre un infowindows, al ...
  #1 (permalink)  
Antiguo 12/07/2012, 12:48
Avatar de Swab  
Fecha de Ingreso: agosto-2008
Ubicación: Chiloé
Mensajes: 92
Antigüedad: 15 años, 8 meses
Puntos: 5
Pregunta google maps, php y mysql

Estimados amigos del foro, hace un tiempo he estado trabajando con php, google maps y mysql. Ahora he querido que me muestre un infowindows, al hacer clic en otro punto me cierre el anterior. Efectivamente lo hace, pero me muestra la misma información en 2 o más marcadores.
Mismo nombre, dirección, etc... Pero me muestra los marcadores bien posicionados.
A continuación les pongo mi código, lo acorté para ahorrar espacio.

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.      google.maps.event.addDomListener(window, 'load', function() {
  3.     var map = new google.maps.Map(document.getElementById('map'), {
  4.       zoom: 15,
  5.       center: new google.maps.LatLng(-43.117027, -73.619099),
  6.       mapTypeId: google.maps.MapTypeId.HYBRID
  7.     }); //Cierra  var map
  8.  
  9.     var infoWindow = new google.maps.InfoWindow;
  10.  
  11.     var onMarkerClick = function() {
  12.       var marker = this;
  13.       var latLng = marker.getPosition(); //Entrega la posición de los marcadores
  14.           infoWindow.setContent(marcadores); //Esta es la línea que tiene el contenido de la variable marcadores
  15.           infoWindow.open(map, marker);
  16.     }; // Cierre de  var onMarkerClick = function() {
  17.       google.maps.event.addListener(map, 'click', function() {
  18.       infoWindow.close();
  19.     });
  20.     <?php
  21.         if($tabla == "puntos" or $criterio != ""){
  22.   ?>
  23.     <?php while ($row = mysql_fetch_array($query2))
  24.      {
  25.      ?>
  26.         var myLatLng  =  new google.maps.LatLng(<?php echo $row['lat']; ?>, <?php echo $row['lng']; ?>);
  27.         var empresa   =  <?php echo "\"" . $row['empresa'] . "\""; ?>;
  28.         var direccion =  <?php echo "\"" . $row['direccion'] . "\""; ?>;
  29.         var telefono  =  <?php echo "\"" . $row['telefono'] . "\""; ?>;
  30.         var image     =  <?php echo "\"" . $row['icono']. "\"";  ?>;
  31.         //Vamos añaddiendo el marcador
  32.         var marker    =  new google.maps.Marker(
  33.          {
  34.           position: myLatLng,
  35.           draggable:false,
  36.           animation: google.maps.Animation.DROP,
  37.           map: map,
  38.           icon: image
  39.        });//Cerramos el maker
  40.         var marcadores ='<b>Empresa:</b>' +empresa + '<br>' + '<b>Direcci&oacute;n:</b>' +direccion + '<br>' + '<b>Tel&eacute;fono:</b>'+telefono;
  41.  
  42.         google.maps.event.addListener(marker, 'click', onMarkerClick);  
  43.     <?php } ?>/*Cierre del While*/
  44.   <?php
  45.   }
  46.   ?>   
  47. });
  48.  
  49.   </script>



Desde ya les gradezco, espero me puedan ayudar a ver dónde esta mi error.

Swab
  #2 (permalink)  
Antiguo 12/07/2012, 14:12
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: google maps, php y mysql

Sin poder hacer las pruebas del código completo permíteme darte algunas sugerencias. Si no te funciona, envíame un enlace a tu página si está levantada para pruebas.

Desde la posición donde veo tu función
Código Javascript:
Ver original
  1. ...
  2. var onMarkerClick = function() {
  3.       var marker = this;
  4.       var latLng = marker.getPosition(); //Entrega la posición de los marcadores
  5.           infoWindow.setContent(marcadores); //Esta es la línea que tiene el contenido de la variable marcadores
  6.           infoWindow.open(map, marker);
  7.     }; // Cierre de  var onMarkerClick = function() { ...
No tengo claro que le llegue la información del
Código Javascript:
Ver original
  1. if($tabla == "puntos" or $criterio != ""){ .... }

Personalmente, seguido de
Código Javascript:
Ver original
  1. ...
  2. var marcadores ='<b>Empresa:</b>' +empresa + '<br>' + '<b>Direcci&oacute;n:</b>' +direccion + '<br>' + '<b>Tel&eacute;fono:</b>'+telefono;
  3. ...
introduciría la lectura del infowindows. Quedaría algo parecido a esto
Código Javascript:
Ver original
  1. var marcadores ='<b>Empresa:</b>' +empresa + '<br>' + '<b>Direcci&oacute;n:</b>' +direccion + '<br>' + '<b>Tel&eacute;fono:</b>'+telefono;
  2.        
  3.           google.maps.event.addListener(marker, 'click', function () {
  4.             infowindow = new google.maps.InfoWindow();
  5.             infowindow.setContent(marcadores);
  6.             infowindow.open(map, marker);
  7.           });
  8.  
  9.  //       google.maps.event.addListener(marker, 'click', onMarkerClick); Podríamos eliminar la línea y la función onMarkerClick

Como ves, infowindow queda dentro de la función google.maps.event.addListener(marker, 'click', function () y sobra onMarkerClick = function() al completo
  #3 (permalink)  
Antiguo 25/07/2012, 11:02
Avatar de Swab  
Fecha de Ingreso: agosto-2008
Ubicación: Chiloé
Mensajes: 92
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: google maps, php y mysql

Gracias por responder, pero saber que queda igual...
échale un vistazo en esta dirección:

http://files.dm.cl/mapaquellon/web/#

Pincha sobre un link derecho y selecciona algo. El primer valor que le haces clic, te sigue por siempre.



Swab
  #4 (permalink)  
Antiguo 26/07/2012, 02:07
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: google maps, php y mysql

Cita:
Iniciado por Swab Ver Mensaje
Gracias por responder, pero saber que queda igual...
échale un vistazo en esta dirección:

http://files.dm.cl/mapaquellon/web/#

Pincha sobre un link derecho y selecciona algo. El primer valor que le haces clic, te sigue por siempre.



Swab
Lo que estoy viendo está claro:
- Con <?php while ($row = mysql_fetch_array($query2)) te recorre todos los datos y los construyes más abajo.
- Con var marker = this; recorres todos los marcadores-
Pero el infoWindow.setContent(marcadores); siempre te recogerá el último ya que la variable se reescribe hasta el final.

He probado para darte una solución directamente, considerandolo un array pero no me permite la estructura que le has dado, por la reescritura de las mismas variables.

Te sugiero que adaptes una forma de lectura como te recomiendan en Uso de PHP / MySQL con Google Maps generando unXML que será leído posteriormente.
Puedes encontrar otras formas de crear, por ejemplo, un archivo JSON (generado dinamicamente con PHP), incluso en este mismo foro.

Personalmente este tipo de trabajos los leo a través de XML con excelente resultado (ver aquí o aquí).
  #5 (permalink)  
Antiguo 26/07/2012, 13:25
Avatar de Swab  
Fecha de Ingreso: agosto-2008
Ubicación: Chiloé
Mensajes: 92
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: google maps, php y mysql

Muchísimas gracias, era lo que necesitaba...

Etiquetas: google, javascript, maps, mysql, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:05.