GMarker 🗺️ Foro Programación de Google Earth y Maps 🗺️

Foro de Programación de Google Earth y Maps Foro de Programación de Google Earth y Maps: Programación con las APIs de Google: Google Earth, Google Maps, KML, Aplicaciones Moviles
Responder al tema Versión Imprimible
Página 1 de 1 - Tema con 4 Mensajes y 6281 Lecturas
Último Mensaje:
Autor Mensaje

Imagen: Serdj
Usuario Habitual
Usuario Habitual
Registrado:
11-07-2012
Mensajes: 33

Votos: 0 👍
Responder citando

EnlacesAsunto: GMarker

Publicado:
Hola de nuevo, después de mis vacaciones he vuelto con mi proyecto, y de nuevo tengo algunas dudas:
Yo tengo un mapa de google maps (como dije en algún mensaje anterior), y voy pinchando en él para crear un camino. Cada click del ratón me crea un GMarker que voy guardando en un array de GMarkers. Estos tiene asociada una ventana que se abre si se pincha, y se puedeahí seleccionar si quiere girar a la derecha o a la izquierda. El problema viene porque estas ventanas de los GMarkers se tienen que ir abriendo y seleccionando en orden, porque sino no correspondería "Selección de dirección/Gmarker". Luego la pregunta es, ¿cómo puedo saber qué GMarker estoy clikando en cada momento?

Gracias.
Ir arriba Serdj
Compartir:

Imagen: _polifemo
SuperExpert
SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando

EnlacesAsunto: Re: GMarker

Publicado:
Hola serdj.

Yo pasé exáctamente por tu mismo problema, y la solución que encontré fué usando la función eval() de php.
No recuerdo si tu trabajabas con php o con otros lenguajes.

Con Eval y un contador daba nombres distintos a cada Marker y a cada evento asociado con el Marker, de modo que tenía controlado sobre que Marker particular porvocaba cada evento.

Otra solución que tendrías, en principio mas elegante por no usar la función eval() y que está muy desaconsejada es agrupar todos los Marker y sus eventos en un array. El subíndice de la posición que ocupan en el array sería el identificador del Marker.

A ver si estos días, cuando esté en casa busco mis códigos y te lo subo para que tengas un ejemplo.

Un saludo.
Ir arriba _polifemo
Compartir:

Imagen: Serdj
Usuario Habitual
Usuario Habitual
Registrado:
11-07-2012
Mensajes: 33

Votos: 0 👍
Responder citando

EnlacesAsunto: Re: GMarker

Publicado:
Yo es que estoy usando javascript. Es cierto que tengo los GMarkers en un array metidos, cada uno tiene su índice, pero a la hora de clickear alguno no sé cual estoy clikeando, porque en ejecución esto no se puede saber. No sé si me estoy explicando bien. De todos modos agradecería mucho el que me subieras un ejemplo con eval().
Ir arriba Serdj
Compartir:

Imagen: _polifemo
SuperExpert
SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando

EnlacesAsunto: Re: GMarker

Publicado:
Buenas serdj.

La siguiente función recibe como parámetro las coordenadas del marker y crea uno nuevo con nombre y eventos distintos según sea el valor capturado en la variable "nombre".

Por ejemplo, si captura Copenhague, creará el Gmarker de nombre "Marker_Conpenhague", con su Infowinow "infowindow_Copenhague" y un evento "click" relacionado directamente con este marker que activa solo el infowindow correspondiente.

Code::
Function crea_marker_array(posicion){
	var nombre = document.getElementById("nombre_destino").value;
	var titulo = nom_viaje;
	var descripción = document.getElementById("descripcion").value;
	var contentString='<div id="content">'+
	'<div id="siteNotice"></div>'+
	'<h3 id="firstHeading" class="firstHeading"><CENTER>'+nombre+' / '+titulo+'</CENTER></h3>'+
	'<div id="bodyContent">'+
	'<HR>'+
	'<p><CENTER>'+descripcion+'</CENTER></p>'+
	'<CENTER><A HREF="http://www.unapaginaweb.com"target="_blank"><IMG SRC="http://www.rutadondealojamoslaimagen.jpg"></CENTER>'+
	'</A>'+
	'</div>';
	eval("var infowindow_"+nombre+" = new google.maps.InfoWindow({content: contentString});");
	eval("var Marker_"+nombre+" = new google.maps.Marker({position: posición, map: map, title: '"+nombre+"'});");
	eval("google.maps.event.addListener(Marker_"+nombre+", 'click', function() {infowindow_"+nombre+".open(map,this);});");
	eval("google.maps.event.addListener(map, 'click', function() {infowindow_"+nombre+".close();});");
}

¿Te queda claro el concepto?.

Un saludo.
Ir arriba _polifemo
Compartir:
Mostrar mensajes de anteriores:
Responder al tema Versión Imprimible
Página 1 de 1 - Tema con 4 Mensajes y 6281 Lecturas - Última modificación: 09/09/2012


RSS: Foro Programación de Google Earth y Maps RSS - Últimos Mensajes
Cambiar a:  


Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
No Puedes adjuntar archivos en este foro
Tu puedes descargar archivos en este foro

Mostrar/Ocultar Últimas Fotos del Foro