2013-01-13 127 views
2

首先感謝您考慮回答此問題:)非常感謝!Google Maps API v3:從陣列添加標記不起作用

我已經使用下面的代碼創建了一個地圖,並且這個工作完美。

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

但後來我想在每個城市的標誌此數組中(請不要建議改變這個作爲這個代碼確切一塊解決了另一個問題,我有,當然,除非絕對neccesary的):

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

};  

而且我使用此代碼代替實際的標記(它是不起作用的部分):

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

回答

5

cities不是一個數組而是一個對象,所以你CA不要使用

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

使用這個代替

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', 
    }); 
} 
+0

非常感謝回答!不幸的是,它仍然沒有放置標記。你可以在http://www.websu.it/devnw/dev/contact.html看到整個地圖。經度和緯度應該是荷蘭的一個地方,它不會顯示出來:(關於我是什麼的任何想法做錯了嗎? –

+0

解決在javascript控制檯中報告的錯誤 – Andreas

+0

哈哈一直在看那個控制檯;剛纔我忘記了,謝謝,抱歉哈哈。 –