Google Maps API V3 - 需要多个标记的帮助

时间:2010-06-23 21:21:58

标签: javascript google-maps google-maps-api-3

我对谷歌地图很新,所以请耐心等待!

我的代码工作得很好,直到我尝试添加多个标记,如果有人能看一眼它,看看我是否遗漏了某些内容,我会非常感激...

$(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

        });
    }
})

1 个答案:

答案 0 :(得分: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]"

因此,您遇到的问题归结为您传递给google.maps.LatLng()构造函数的参数是Array而不是Number