Google Maps API v3: l'ajout de marqueurs à partir d'un tableau ne fonctionne pas

Tout d'abord, merci d'avoir répondu à cela 🙂 Très apprécié!

J'ai créé une carte en utilisant le code suivant, et cela fonctionne parfaitement.

function initialize() { var mapOptions = { zoom: 5, center: new google.maps.LatLng(48.160, -6.832), disableDefaultUI: true, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); setMarkers(map, cities); } 

Mais alors, je veux des marqueurs à chacune des villes dans ce tableau (ne pas suggérer de changer cela car ce code exact résout un autre problème que j'avais, à moins que cela ne soit absolument nécessaire):

  var cities = { 'Groningen': [ 53.216723950863425, 6.560211181640625, 7], 'San Francisco': [ 34.01131647557699, -118.25599389648437, 5], 'New York City': [ 40.7143528, -74.0059731, 3] }; 

Et j'utilise ce code pour placer les marqueurs réels (ce qui ne fonctionne pas):

  function setMarkers(map, locations) { // Add markers to the map for (var i = 0; i < cities.length; i++) { var data = cities [i] var marker = new google.maps.Marker({ position: new google.maps.LatLng (data[0], data[1]), map: map, icon: image, title: 'test', }); } } 

cities ne sont pas un tableau, mais un objet, donc vous ne pouvez pas utiliser

 for (var i = 0; i < cities.length; i++) { //... } 

Utilisez-le à la place

 for (var key in cities) { var data = cities[key]; var marker = new google.maps.Marker({ position: new google.maps.LatLng (data[0], data[1]), map: map, icon: image, title: 'test', }); }