1

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" (オプション マップで有効化) で行われます。

問題のあるサンプル:フィドル

4

1 に答える 1