elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
26 Mayo 2012, 16:39  


Tema destacado: ¡Aprende hacking con práctica! - WarZone, el wargame de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Google Maps API v3 Markes e InfoWindows
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Google Maps API v3 Markes e InfoWindows  (Leído 920 veces)
El As del Club Paris


Desconectado Desconectado

Mensajes: 1.815


Ver Perfil WWW
Google Maps API v3 Markes e InfoWindows
« en: 17 Enero 2012, 21:40 »

Hola, estoy implementando Google Maps API v3 en mi sitio. En un pagina cargo un archivo JSON (generado dinamicamente con PHP) que tiene la siguiente estructura:

Código:
{
cantidad: 2,
lugares: {
1: {
id_lugar: "1",
nombre_lugar: "Municipalidad de Rawson",
latitude: "-43.2999997",
longitude: "-65.1052474",
icono: "gov"
},
2: {
id_lugar: "4",
nombre_lugar: "Honorable Legislatura de la Provincia del Chubut",
latitude: "-43.297535",
longitude: "-65.10604269999999",
icono: "gov"
}
}
}

El codigo JS (jQuery) es este:

Código
$.getJSON( 'ajax.php?action=list&categoria=gov', function(json){
 
for(var i=1; i<=json.cantidad; i++)
{
var marker = new google.maps.Marker({
position:new google.maps.LatLng(json['lugares'][i]['latitude'], json['lugares'][i]['longitude']),
map:map,
title:json['lugares'][i]['nombre_lugar']
});
 
var infowindow = new google.maps.InfoWindow({
content:json['lugares'][i]['nombre_lugar']
});
 
Marcadores[i] = marker;
Informacion[i] = infowindow;
 
google.maps.event.addListener(Marcadores[i] , "click", function(){//#
Informacion[i].open(map,Marcadores[i] );
});//#
}
 
} );

Pero no me funciona, al parecer no me genera el listener del evento click sobre cada uno de los marcadores para abrir el correspondiente InfoWindow. El caso es que si comento las lineas indicadas con //#, para que los IW se abran automaticamente sin darle click al marcador si funciona, pero lo que yo quiero es que esten ocultos y mostrarlos cuando se hace click.

Alguna sugerencia?  :huh:

PD: Tanto el array Marcadores como Informacion estan incializados como arrays vacios globales al principio del script


« Última modificación: 17 Enero 2012, 21:44 por El As del Club Paris » En línea

sudo suck --mycock -o force
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Google Maps API v3 Markes e InfoWindows
« Respuesta #1 en: 18 Enero 2012, 06:14 »

Wii alguien interesando en el API de GoogleMaps :D, intentad con lo siguiente,

Código
    var structMap = {
       cantidad: 2,
       lugares: {
           1: {
               id_lugar: "1",
               nombre_lugar: "Acuaparque Ditaires",
               latitude: "6.169312989325159",
               longitude: "-75.63074111938477",
               icono: "gov"
           },
           2: {
               id_lugar: "4",
               nombre_lugar: "Triana",
               latitude: "6.169312989325159",
               longitude: "-75.64567565917969",
               icono: "gov"
           }
       }
   }
 
   function initMap() {
       // Posición inicial
       var latlng = new google.maps.LatLng( structMap['lugares'][1]['latitude'], structMap['lugares'][1]['longitude'] );
 
       // Opciones del mapa
       var myOptions = {
           zoom          : 15,
           center       :  latlng,
           mapTypeId : google.maps.MapTypeId.ROADMAP
       };
 
       // Mapa
       var map = new google.maps.Map( document.getElementById("map_canvas"), myOptions );
 
       for(var i=1; i<=structMap.cantidad; i++){
           // Agregar marcador
           var marker = new google.maps.Marker({
               position : new google.maps.LatLng( structMap['lugares'][i]['latitude'], structMap['lugares'][i]['longitude'] ),
               map       : map,
               title        : structMap['lugares'][i]['nombre_lugar']
           });
 
           // Agregar ventana de información con evento
           mostrarMensaje( marker, structMap['lugares'][i]['nombre_lugar'] );
       }
 
       function mostrarMensaje(marker, msg) {
           // Crear ventana de información.
           var infowindow = new google.maps.InfoWindow({
               content : msg
           });
 
           // Crear evento para mostrar la ventana al dar click
           google.maps.event.addListener(marker, 'click', function(){
               infowindow.open(map, marker);
           });
       }
 }

Resultado,


« Última modificación: 18 Enero 2012, 06:33 por Shell Root » En línea

---
El As del Club Paris


Desconectado Desconectado

Mensajes: 1.815


Ver Perfil WWW
Re: Google Maps API v3 Markes e InfoWindows
« Respuesta #2 en: 27 Enero 2012, 12:58 »

Muchisimas gracias, funciona a la perfeccion!
En línea

sudo suck --mycock -o force
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Google Maps vs Yahoo Maps
Foro Libre
Dacan 3 726 Último mensaje 3 Febrero 2009, 22:36
por Dacan
Nokia Maps y Google Maps: una estocada mortal para Garmin y TomTom
Noticias
wolfbcn 0 950 Último mensaje 23 Enero 2010, 17:43
por wolfbcn
ayuda c++ y google earth/google maps
Programación C/C++
mafrune22 5 2,223 Último mensaje 3 Febrero 2010, 20:30
por Cmenosmenos
Google Maps en 3D
Noticias
wolfbcn 0 362 Último mensaje 27 Abril 2010, 21:28
por wolfbcn
Google cierra el grifo gratuito al acceso intensivo a la API de Google Maps
Noticias
wolfbcn 2 1,197 Último mensaje 28 Octubre 2011, 13:53
por El As del Club Paris
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines