我想在谷歌地图上显示所有标记,但循环只显示最后一条记录。怎么解决它?
function initMap() {
for (i = 0; i < markers.length ; i++) {
var location = {lat: markers[i][0], lng: markers[i][1]};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: location
});
var marker = new google.maps.Marker({
position: location,
// prevent the user move the marker
draggable: false,
map: map
});
}
}
答案 0 :(得分:1)
您每次都在循环中创建地图。由于这个原因,只能看到最后一个标记。将创建地图的代码移到循环外。
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: {lat: markers[0][0], lng: markers[0][1]}
});
for (i = 0; i < markers.length ; i++) {
var location = {lat: markers[i][0], lng: markers[i][1]};
var marker = new google.maps.Marker({
position: location,
// prevent the user move the marker
draggable: false,
map: map
});
}
}
如果您希望放大地图以查看所有标记,则可以使用LatLngBounds类。