2011-09-05 9 views

Respuesta

16

sólo tiene que generar los marcadores con una fábrica de algún tipo, por ejemplo:

function initMarkers(map, markerData) { 
    var newMarkers = [] 

    // Here's where all the really verbose code goes. Loop through `markerData` to 
    // create each marker. See the full code in the js fiddle 

    return newMarkers; 
} 

function initialize_google_map() { 
    //Here the call to initMarkers() is made with the necessary data for each marker. 
    //All markers are then returned as an array into the markers variable, Usually you'd 
    //get the data from server or something, here it's just shown inline. 

    var markers = initMarkers(map, [ 
     { latLng: new google.maps.LatLng(49.47216, -123.76307), address: "Address 1", state: "State 1" }, 
     { latLng: new google.maps.LatLng(49.47420, -123.75703), address: "Address 2", state: "State 2" }, 
     { latLng: new google.maps.LatLng(49.47530, -123.78040), address: "Address 3", state: "State 3" } 
    ]); 
} 

salida el ejemplo completo con HTML y otras cosas in this jsfiddle.

3

Para alternar de Ficha de reemplazar onclick:

google.maps.event.addListener(marker, 'click', (function(marker, i) { 
    return function() { 
     newMarkers[i].infobox.open(theMap, this); 
     theMap.panTo(markerData[i].latLng); 
    } 
})(marker, i)); 

Por:

google.maps.event.addListener(marker, 'click', (function(marker, i) { 
    return function() { 
     for (h = 0; h < newMarkers.length; h++) { 
      newMarkers[h].infobox.close(); 
     } 
     newMarkers[i].infobox.open(theMap, this); 
     theMap.panTo(markerData[i].latLng); 
    } 
})(marker, i)); 
0

@DonamiteIsTnt su ejemplo es muy útil, pero markerData [i] no tiene ninguna propiedad latLng i Piensa utilizar markerData [i] .position. Funcionó para mí

Cuestiones relacionadas