Google Maps API JS v2 - Semplice multipla Marker Esempio
-
29-09-2019 - |
Domanda
Sono abbastanza nuovo per Gmaps e Im utilizzando v2 a causa della funzione di ricerca che non ho trovato in v3.
Ho un array di dati che voglio scorrere e mettere le icone sulla mappa =)
Sembra veramente facile, ma non posso farlo funzionare con v2 a tutti ...
Ecco il mio quello che il mio formato di array e guarda il codice come:
function createMarkers(myLatLng,html) {
var marker = new GMarker(myLatLng, markerOptions);
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
var locations = [
["Bondi Beach",-33.890542,151.274856],
["Coogee Beach",-33.923036,151.259052],
["Cronulla Beach",-34.028249,151.157507],
["Manly Beach",-33.80010128657071,151.28747820854187],
["Maroubra Beach",-33.950198,151.259302]
];
for (var i = 0; i < location.length; i++) {
var locations = locations[i];
var myLatLng = new GLatLng(locations[1],locations[2]);
var dynamicmarker = createMarkers(myLatLng);
map.addOverlay(dynamicmarker);
}
I beachnames ottenuto posizioni di posizione [0], la posizione posizione Got lat [1] e lng avuto luogo posizione [2] e così via ...
I provata i nomi delle spiagge come l'opzione "html", ma ho solo ottenere un marcatore sullo schermo. Ive ha controllato il ciclo for e sembra corretto, v3 è così semplice per farlo funzionare. Ma ho bisogno di avere la funzione di ricerca che ha v2 ...
sarebbe così grato se qualcuno mi potrebbe dare un suggerimento o mostrarmi come passare attraverso la matrice e ottenere quei marcatori di presentarsi!
Soluzione
Si sembrano avere qualche problema nel ciclo for. Prima di tutto dovrebbe essere location.length
locations.length
. Poi ti sembra di essere ri-dichiarazione di una variabile locations
all'interno del ciclo for. Ricordate che JavaScript non ha scopo di blocco.
Si potrebbe voler provare quanto segue:
var i, myLatLng;
for (i = 0; i < locations.length; i++) {
myLatLng = new GLatLng(locations[i][1], locations[i][2]);
map.addOverlay(createMarkers(myLatLng));
}