2012-07-07 17 views
95

¿Existe alguna manera de que pueda agregar información personalizada a mis marcadores para su uso posterior? Hay formas de tener una ventana de información y un título, pero qué sucede si quiero asociar el marcador con otra información.Google Map API V3: cómo agregar datos personalizados a marcadores

Tengo otras cosas que se muestran en la página que dependen de los marcadores, así que cuando se hace clic en un marcador, el contenido de la página debe cambiar según el marcador al que se haya hecho clic. Me gustaría almacenar y recuperar los datos personalizados una vez marcador se deja la opinión que hace clic, etc.

Gracias

Respuesta

169

Como Google Marker es un objeto de JavaScript, puede agregar información personalizada en el formulario key: value, donde la clave es una cadena válida. Se llaman propiedades de objeto y se pueden abordar de diferentes maneras. El valor puede ser cualquier cosa legal, tan simple como números o cadenas, y también funciones, o incluso otros objetos. Tres formas sencillas: en la declaración, y la notación de puntos entre corchetes

var markerA = new google.maps.Marker({ 
    map: map, 
    position: new google.maps.LatLng(0, 0), 
    customInfo: "Marker A" 
}); 

var markerB = new google.maps.Marker({ 
    map: map, 
    position: new google.maps.LatLng(-10, 0) 
}); 
markerB.customInfo = "Marker B"; 

var markerC = new google.maps.Marker({ 
    map: map, 
    position: new google.maps.LatLng(-20, 0) 
}); 
markerC['customInfo'] = "Marker C"; 

Luego de recuperarla de una manera similar:

google.maps.event.addListener(markerA, 'click', function() { 
    alert(this.customInfo); 
}); 
+0

tiene mucho sentido. La demostración lo hace todo más claro Gracias :) – Abid

+0

¡De nada! –

+2

No hay nada en [la documentación] (https://developers.google.com/maps/documentation/javascript/reference#MarkerOptions) que formalice este patrón. Aquí esperamos que lo hagan en lugar de romperlo en una versión posterior. – Adam

14

usted puede agregar sus propias propiedades personalizadas a los marcadores (sólo tenga cuidado de no entrar en conflicto con las propiedades de la API).

Cuestiones relacionadas