2013-05-14 21 views
30

Sto provando a rimuovere i controlli dello zoom (+/-) su una mappa LeafletJS.LeafletJS: come rimuovere il controllo zoom

Sto usando il MapBox.js version of Leaflet ma la maggior parte delle operazioni sono le stesse di Leaflet. Implemento la mia mappa in questo modo:

var map = L.mapbox.map('map'); 

var layer = L.mapbox.tileLayer('MAPBOX-ID', { 
    format: 'jpg70', 
    minZoom: 13, 
    maxZoom: 15, 
    reuseTiles: true, 
    unloadInvisibleTiles: true 
}); 
map.addLayer(layer); 
map.setView([40.73547,-73.987856]); 

Il documentation dice che c'è un'opzione di ZoomControl che rimuoverà il controllo dello zoom dalla mappa, ma non ho avuto fortuna a farla funzionare.

Come posso rimuovere il controllo zoom con questa implementazione?

Grazie!

risposta

61

Questo è lavoro per me.

var map = new L.Map('map', { zoomControl:false }); 

Hai provato?

var map = L.mapbox.map('map', { zoomControl:false }); 
+0

Questo mi ha indirizzato nella giusta direzione. Grazie. –

+2

'var map = L.mapbox.map ('map', {zoomControl: false});' non funziona, il secondo parametro deve essere una stringa che specifica il tipo di mappa, il terzo parametro accetta '{zoomControl: false } ' – Programster

+1

per coloro che desiderano disabilitare lo zoom della rotellina del mouse, ma non disabilitare la possibilità di eseguire lo zoom utilizzando i pulsanti + e - sulla mappa, sostituire' zoomControl' con 'scrollWheelZoom' – Programster

17

Grazie alla risposta del coordinatore, sono riuscito a capire il metodo corretto. La soluzione è:

// Create the map 
var map = L.mapbox.map('map', null, { zoomControl:false }); 

// Create my custom layer 
var layer = L.mapbox.tileLayer('MAPBOX-ID', { 
    format: 'jpg80', 
    minZoom: 13, 
    maxZoom:15, 
    tileSize: 256, 
    reuseTiles: true, 
    unloadInvisibleTiles: true 
}); 


// Add the layer 
map.addLayer(layer); 
3
map.scrollWheelZoom.disable(); 
36

Se si desidera attivare in modo dinamico e disattivare lo zoom si può fare qualcosa di simile:

map.touchZoom.disable(); 
map.doubleClickZoom.disable(); 
map.scrollWheelZoom.disable(); 
map.boxZoom.disable(); 
map.keyboard.disable(); 
$(".leaflet-control-zoom").css("visibility", "hidden"); 
+6

Per coloro che desiderano disabilitare la funzione di trascinamento, è possibile fallo anche tu: map.dragging.disable(); – sam

5

si può semplicemente utilizzare

map.zoomControl.remove();

+0

nel mio caso un get TypeError: map.zoomControl.remove non è una funzione. Il modo in cui ho trovato sta usando la funzione 'removeControl' come questa:' map.removeControl (map.zoomControl); ' – leobelizquierdo

+0

Suppongo che map.zoomControl.remove() sia una nuova funzione nella versione 1.0.0 mentre map.removeControl () è per versioni inferiori. – yemaw

6

è possibile rimuovere il controllo zoomControl in questo modo:

map.removeControl(map.zoomControl); 
Problemi correlati