2015-07-23 7 views
6

Ich verwende leafletjs für meine Test-App. Ich muss das Zoomout-Ereignis auslösen, wenn die Größe des Browsers geändert wird.Wie kann ich ein Zoom-Out-Ereignis in der Browser-Größe auslösen?

Hier ist mein Browser Resize-Code:

(function(){ 
    $(window).on("resize", resize); 
    function resize() { 
     "use strict"; 

     if($(window).width() <= 765){ 
      mapOptions.zoom = 5; 
      console.log(mapOptions.zoom); 
     } 
    } 
})(); 

Dieser Code, wenn die Karte zeigen:

L.TopoJSON = L.GeoJSON.extend({ 
    addData: function(jsonData) {  
     if (jsonData.type === "Topology") { 
      for (key in jsonData.objects) { 
       geojson = topojson.feature(jsonData, jsonData.objects[key]); 
       L.GeoJSON.prototype.addData.call(this, geojson); 
      } 
     } else { 
      L.GeoJSON.prototype.addData.call(this, jsonData); 
     } 
    } 
}); 

var tiles = L.tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"); 
var latlng = new L.LatLng(28.40, 84.15); 
mapOptions={ 
    dragging: false, 
    zoomControl: true, 
    scrollWheelZoom: false, 
    doubleClickZoom: false, 
    touchZoom: false, 
    attributionControl: false, 
    center: latlng, 
    zoom: 7, 
    layers: [tiles] 
}; 
console.log(mapOptions.zoom + 'first'); 

map = L.map('map-nepal', mapOptions); 
map.invalidateSize(); 

var topoLayer = new L.TopoJSON(); 
$.getJSON('js/map/districts.topo.json').done(addTopoData); 

Was ich getan habe, ist eine globale Variable mapOptions genannt erstellen. Zuerst wird die Karte mit mapOptions.zoom = 7 initialisiert und wenn die Größe des Browsers geändert wird, dann habe ich den Wert von mapOptions.zoom zu 6 geändert. Der Wert hat sich geändert, aber beim Zoomen der Karte gibt es keine Auswirkungen.

Antwort

2

Wenn Sie die Zoomstufe der Karte ändern möchten, versuchen Sie setZoom() Funktion anstelle von mapOptions.zoom, wenn Sie die Zoomstufe der Karte ändern möchten. Also, in Ihrem Fall, verwenden Sie diese

map.setZoom(6); 

Ich hoffe, es würde funktionieren.

Verwandte Themen