2010-06-23 88 views
2

我對谷歌地圖很新穎,請耐心等待!Google Maps API V3 - 需要多個標記的幫助

我的代碼是工作的罰款,直到我試圖添加多個標記,真的很感激,如果任何人都可以一眼,看看,如果我失去了一些東西......

$(function() { 

    var map_markers = [ [ [52.951946], [1.018124] ], [ [52.955311], [0.987997] ] ]; 

    var options = { 
     zoom: 13, 
     center: latlng, 
     mapTypeControl: false, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    };   
    var map = new google.maps.Map(document.getElementById('map_canvas'), options); 


    //markers    
    for (var i = 0; i < map_markers.length; i++) { 
     var m =   map_markers[i]; 
     var myLatLng = new google.maps.LatLng(m[0], m[1]); 
     var marker = new google.maps.Marker({ 
      position: myLatLng, 
      map: map 

     }); 
    } 
}) 

回答

2

你的問題是你如何初始化您的map_markers陣列。你或許應該做以下幾點:

var map_markers = [[52.951946, 1.018124], [52.955311, 0.987997]]; 

否則,你map_markers你將不得不引用它,如下所示:

var m =   map_markers[i]; 
var myLatLng = new google.maps.LatLng(m[0][0], m[0][1]); 

讓我們打破你的map_markers陣列,以幫助您瞭解的問題:

var map_markers = [ [ [52.951946], [1.018124] ], [ [52.955311], [0.987997] ] ]; 

console.log(map_markers[0]); 
// [[52.951946], [1.018124]] 

Object.prototype.toString.call(map_markers[0]); 
// "[object Array]" 

console.log(map_markers[0][0]); 
// [52.951946]     

Object.prototype.toString.call(map_markers[0][0]); 
// "[object Array]" 

console.log(map_markers[0][0][0]); 
// 52.951946      

Object.prototype.toString.call(map_markers[0][0][0]); 
// "[object Number]" 

因此,您所遇到的問題歸結爲您傳遞給的參數的構造函數是Array而不是Number

+0

謝謝,這是一個出色解釋的答案 – Haroldo 2010-06-24 17:23:31