Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/07/2008, 18:02
guybrush78
 
Fecha de Ingreso: febrero-2005
Ubicación: Cádiz
Mensajes: 50
Antigüedad: 20 años
Puntos: 2
Problema con GoogleMaps

Buenas a todos (politicamente correcto = ON -> "y a todas")

En fin, os cuento, he usado la función load que viene en las APIs de google maps, haciendo que el punto lo defina en vez de una latitud y una longitud, una cadena de la forma: "direccion, ciudad, provincia", y funciona perfecto:
Código PHP:
     function load(direccioncapa) {
      if (
GBrowserIsCompatible()) {
        var 
map = new GMap2(document.getElementById(capa));
        var 
geocoder = new GClientGeocoder();
        var 
address direccion;

        
map.addControl(new GLargeMapControl());
        
map.addControl(new GMapTypeControl());
        
map.addControl(new GOverviewMapControl());

        
geocoder.getLatLng(address
                        function 
showLocation(point) {
                if (!
point) {
                  
alert(address " no encontrado.");
                } else {                                                    
                  
map.setCenter(point15);
                  var 
marker = new GMarker(point);
                  
map.addOverlay(marker);
    
                  var 
label direccion;
                  
GEvent.addListener(marker"click"
                                        function 
showLabel() {
                          
marker.openInfoWindowHtml(label);
                        }
                  );
                }
                }
          );
      }
    } 
Lo que pasa es que el load lo cargo en un bucle en un div determinado con ids distintas de esta forma:

Código PHP:
<?
for ($i=0$i<count($alumnos); $i++) {
    
$dni $alumnos[$i]['DNI_alum'];
    
$localidad $alumnos[$i]['localidad'];
    
$provincia $alumnos[$i]['provincia'];
    
$calle $alumnos[$i]['calle'];
    
$ruta_google $calle.", ".$localidad.", ".$provincia;
    
?><div class='cuadro_input' id='<?=$dni?>' onclick="load('<?=$ruta_google?>', 'alumno_medio2');">
Aparte, al principio de la web tengo evidentemente el script cargado así:
Código PHP:
<script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=<?=$keygoogle?>" type="text/javascript"></script>
Parece que todo bien, pues cuando cargo la web y pincho sobre un alumno, aparece su mapa situado con su punto de marcado señalando el lugar exacto en el mapa, y al pulsar sobre esa marca, me sale el mensaje con la dirección como tengo puesto en la función de load.

Pues cuando pulso sobre un segundo alumno, sea cual sea, y fuera cual fuese que hubiera pulsado anteriormente, YA NO SALE EL PUNTO DE MARCACIÓN NI EL MINIMAPA DE ABAJO, y además, en el web developer me sale el error de "this.Ve is null" o también "this.$e is null", y de dice la referencia del prototipo de las apis, las cuales siempre hacen referencia a this.ve.width o height, y el $e igual, width y height...

Estoy confuso, ¿por qué a cualquier alumno, en el primer click aparece todo correcto, y en el segundo, sea cual sea, no sale la marca en el mapa y sale ese error?

He probado con hacer un GUnload() antes de hacer el load() por si queda algo en caché que crea conflicto, pero nada, y me he jartao de buscar pero no doy con el tema...

¿alguna propuesta?