2010-06-23 3 views
0

Je suis assez nouveau pour gmaps et Im en utilisant v2 en raison de la fonction de recherche que je n'ai pas trouvé dans v3.Google Maps API JS v2 - Simple Exemple de marqueur multiple

J'ai un tableau de données que je veux faire une boucle à travers et mettre les marqueurs sur la carte =)

Il semble vraiment facile, mais je ne peux pas le faire fonctionner avec v2 du tout ...

Voici ma ce que mon format de tableau et le code ressemble à:

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); 
} 

les beachnames ont des emplacements de position [0], le lat a lieu de position [1] et lng obtenu l'emplacement de position [2] et ainsi de suite ...

Je n'ai pas utilisé les noms des plages comme option "html", mais j'ai seulement un marqueur sur l'écran. J'ai vérifié la boucle for et il semble correct, v3 est si simple de le faire fonctionner. Mais j'ai besoin d'avoir la fonction de recherche que v2 a ...

Serait très reconnaissant si quelqu'un pourrait me donner un conseil ou me montrer comment aller à travers le tableau et obtenir ces marqueurs à apparaître!

Répondre

1

Vous semblez avoir quelques problèmes dans la boucle for. Tout d'abord location.length devrait être locations.length. Ensuite, vous semblez re-déclarer une variable locations dans la boucle for. N'oubliez pas que JavaScript n'a pas de portée de bloc.

Vous pouvez vouloir essayer ce qui suit:

var i, myLatLng; 

for (i = 0; i < locations.length; i++) { 
    myLatLng = new GLatLng(locations[i][1], locations[i][2]); 
    map.addOverlay(createMarkers(myLatLng)); 
} 
+0

Oh mon Dieu! Daniel je ne sais pas combien je pourrais te remercier maintenant! : D Ça a marché comme un charme! J'ai vraiment besoin de vérifier mon orthographe quand je suis en train d'écrire pour des boucles, je suis tellement utilisé pour marquer les noms de var et ensuite tous les noms de var qui sont identiques sont marqués dans Zend Studio mais cela ne se voit pas comme php .. Daniel, encore une fois, merci beaucoup !!! – EIGHTYFO