2011-07-22 9 views
40

Tengo un mapa de google configurado para encontrar la ubicación actual del usuario, y centrar el mapa en el marcador más cercano a su ubicación. Los marcadores, cuando se hace clic en ellos, abren un cuadro de información (tenga en cuenta que esto es un poco diferente de una ventana de información - http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/examples.html). Lo que quiero hacer, sin embargo, es abrir automáticamente el marcador más cercano sin que el usuario realmente haga clic. Aquí está el código para activar una abertura marcador:desencadenar google maps marker click

//loop through all locations to add a marker: 
addMarker = function(loc) { 
    var markerLoc = new google.maps.LatLng(loc.Lat, loc.Long); 

    var marker = new google.maps.Marker({ 
     map: map, 
     position: markerLoc 
    }); 

    google.maps.event.addListener(marker, "mousedown", function() { 

     var infoOpts = { 
      content: loc.markerText, 
      boxStyle: { background: "none transparent", width: "180px"}, 
      pixelOffset: new google.maps.Size(-90, 0), 
      closeBoxMargin: "5px" 
     }; 

     var ib = new InfoBox(infoOpts); 
     ib.open(map, marker); 
    }); 

    markers.push(marker); 
}; 

Así que de alguna manera tengo que activar la función mouseDown del marcador apropiado, pero tiene que ser hecho de una función fuera de éste. Tendré una referencia al marcador apropiado en el conjunto (marcadores [marcador más cercano]).

Respuesta

95

veo que esta cuestión ha estado sentado durante bastante tiempo, pero, por si acaso, esta respuesta puede ser útil: trigger google maps marker click

Buena suerte!

El código se vería así:

var marker = new google.maps.Marker({}); 
new google.maps.event.trigger(marker, 'click'); 
3

encontré que necesitaba para adjuntar un evento de clic con el marcador al igual que

var marker = new google.maps.Marker({}); 
marker.addListener('click', function() { 
    infowindow.open(map, marker); 
}); 
new google.maps.event.trigger(marker, 'click'); 
Cuestiones relacionadas