2017-04-08 109 views
-1

我想在谷歌地图上显示所有标记,但循环只显示最后一条记录。如何解决它?如何显示谷歌地图上的所有标记(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 
     }); 
     } 
     } 

回答

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类。