谷歌地图:全屏+ fitBounds不适合边界

时间:2016-12-01 03:57:26

标签: google-maps-api-3 markerclusterer fitbounds

我有一张地图,用markerClusterer显示标记。

在普通视图中一切正常,但在全屏模式下,群集上的点击运行“fitBounds”并且缩放未正确更改(缩小发生而不是放大)。

代码:

var mapOptions = {
    zoom: 17,
    minZoom: 4,
    maxZoom: 20,
    center: {lat: 0, lng: 0},
    fullscreenControl: true
}

var mcOptions = {
    gridSize: 20,
    styles: clusterStyles,
    maxZoom: 20
};

var bounds = new google.maps.LatLngBounds();

function initialize(itensJSON){

    var map = new google.maps.Map(document.getElementById("map"), mapOptions);

    $.each(itensJSON, function (i, item) {
        var marker = new google.maps.Marker({
            position: item.location,
            id: item.id
        });
        markers.push(marker);
        bounds.extend(marker.getPosition());
    });

    map.fitBounds(bounds);
    markerClusterer = new MarkerClusterer(map, markers, mcOptions);
}

HTML:

<div id="map_container" style="position: absolute; width: 100%; height: 80%;">
      <div id="map" style="width: 100%; height: 100%">
      </div>
  </div>

在markerclusterer.js的'triggerClusterClick'中运行fitbounds时,缩小发生而不是放大:

ClusterIcon.prototype.triggerClusterClick = function(event) {
  var markerClusterer = this.cluster_.getMarkerClusterer();

  // Trigger the clusterclick event.
  google.maps.event.trigger(markerClusterer, 'clusterclick', this.cluster_, event);

  if (markerClusterer.isZoomOnClick()) {
    // Zoom into the cluster.
    this.map_.fitBounds(this.cluster_.getBounds());
  }
};

有谁知道发生了什么事?

PS:使用“fullscreenControl”(在选项图中启用)更改为全屏

问题示例:fiddle

1 个答案:

答案 0 :(得分:1)

使用&#39;%衡量标准时会出现问题&#39;在div地图的高度

我解决了这个问题:

html, body {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}

解决方案示例:fiddle