如何显示谷歌地图上的所有标记(API v3)
问题描述:
我想在谷歌地图上显示所有标记,但循环只显示最后一条记录。如何解决它?如何显示谷歌地图上的所有标记(API v3)
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
});
}
}
答
您正在循环中创建地图。由于这个,只能看到最后一个标记。移动在循环外部创建地图的代码。
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类。