Увеличение карты листовки при входе в полноэкранный режим - PullRequest
0 голосов
/ 03 мая 2018

У меня есть карта с маркерами и кластерами. Я использовал решение из https://stackoverflow.com/a/16845714/2660362, чтобы адаптировать размер карты к показанным маркерам / кластерам. Затем я объединил пример учебника с полноэкранной функциональностью. Теперь было бы очень хорошо, если бы карта могла быть увеличена, когда я выхожу в полноэкранный режим. Есть функция, которая вызывается, но она не изменяет масштаб карты. Это возможно?

var map = L.map( 'map', {
    center: [20.0, 5.0],
    //minZoom: 1,
    //zoom: 1,
    fullscreenControl: true,
    fullscreenControlOptions: {
        position: 'topleft'
        }
})

L.tileLayer( 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',
  subdomains: ['a', 'b', 'c']
}).addTo( map )

var myURL = jQuery( 'script[src$="talks.js"]' ).attr( 'src' ).replace( 'talks.js', '' )

var myIcon = L.icon({
  iconUrl: myURL + 'images/pin24.png',
  iconRetinaUrl: myURL + 'images/pin48.png',
  iconSize: [29, 24],
  iconAnchor: [9, 21],
  popupAnchor: [0, -14]
})

var markerClusters = L.markerClusterGroup({maxClusterRadius:30});


for ( var i=0; i < markers.length; ++i )
{
 var m = L.marker( [markers[i].lat, markers[i].lng], {icon: myIcon} )
                 .bindPopup( markers[i].name  );

  markerClusters.addLayer( m );
}

map.addLayer( markerClusters );

//map.fitBounds(markers.getBounds());

var bounds = L.latLngBounds(markers);
map.fitBounds(bounds);




// events are fired when entering or exiting fullscreen.
map.on('enterFullscreen', function(){
  console.log('entered fullscreen');
  bounds = L.latLngBounds(markers);
  map.fitBounds(bounds);
});

map.on('exitFullscreen', function(){
  console.log('exited fullscreen');
});

1 Ответ

0 голосов
/ 04 мая 2018

EDIT: переменная markers в вашем коде является массивом, а не группой слоев листовки, поэтому листовка не может возвращать границы.

Я изменил код в соответствии с границами кластера, и он заработал:

map.on('enterFullscreen', function(){
     console.log('entered fullscreen');
     bounds = markerClusters.getBounds();
     map.fitBounds(bounds);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...