我对谷歌地图很新,所以请耐心等待!
我的代码工作得很好,直到我尝试添加多个标记,如果有人能看一眼它,看看我是否遗漏了某些内容,我会非常感激...
$(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
});
}
})
答案 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
。