如何在谷歌地图上显示所有标记(API v3)

时间:2017-04-08 06:44:18

标签: google-maps-api-3

我想在谷歌地图上显示所有标记,但循环只显示最后一条记录。怎么解决它?

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 个答案:

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