为什么我不能使用此代码在Google地图上设置缩放级别?

时间:2019-05-08 19:17:36

标签: google-maps

我在这里有一个漂亮的样板Google Maps代码,当页面加载时,它会显示地图和标记,但Zoom级别不是14。实际上,我可以将脚本的Zoom设置为任何值,但不会。没关系。无论如何,地图都保持相同的默认缩放比例。

function initMap() {
  var bangalore = { lat: 25.94255500, lng: -81.72122700 };
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 14,
    center: bangalore
  });

  var locations = [
    @foreach ($results as $result)
    ['{!! $result->CleanStreet !!}', {!! $result->GoogleLat !!}, {!! $result->GoogleLong !!} ],
    @endforeach
  ];

  var infowindow = new google.maps.InfoWindow();

  var marker, i;
  var bounds = new google.maps.LatLngBounds();
  for (i = 0; i < locations.length; i++) {
    marker = new google.maps.Marker({
      position: new google.maps.LatLng(locations[i][1], locations[i][2]),
      map: map
    });
    bounds.extend(marker.getPosition());

    google.maps.event.addListener(marker, 'click', (function(marker, i) {
      return function() {
        infowindow.setContent(locations[i][0]);
        infowindow.open(map, marker);
      }
    })(marker, i));
  }
  map.fitBounds(bounds);
}

1 个答案:

答案 0 :(得分:1)

您正在呼叫map.fitBounds(bound),它将缩放地图以适合所包含的标记,并且不会通过更改地图的初始缩放值来实现(实际上,您可以从中删除中心/缩放值地图构造函数,并且只要您具有 some 标记,就会对其进行初始化以显示这些标记。)

要么删除该调用并设置初始中心并放大map构造函数,要么在调用zoom_changed后等待map.fitBounds(bounds);事件触发并进行设置。< / p>

相关问题:Google maps fitBounds zoom not changing