0.2.0 • Published 9 years ago
leaflet-iconlayers v0.2.0
Leaflet-IconLayers
Leaflet base layers switching control with icons (example)
Requires Leaflet 0.7.3 or newer; IE9+
Extends L.Control
.
Using Control
Copy files from src
dir and include them to your project.
Basic usage:
L.control.iconLayers(layers).addTo(map);
In order to interact with layers Leaflet-IconLayers uses an array of layer objects, that have following fields:
icon
- icon url (typically 80x80)title
- a short string that is displayed at the bottom of each iconlayer
- any LeafletILayer
You can pass this array to construtor or use setLayers
method.
The second constructor argument may be options
hash. It is also ok if it is the only one.
Options
maxLayersInRow
- the number of layers, that a row can containmanageLayers
- by default control manages map layers. Passfalse
if you want to manage layers manually.
plus L.Control
options (position
)
Methods
setLayers(<Array> layers)
- replace layers array with a new onesetActiveLayer(<ILayer> layer)
- set active layercollapse()
- hide secondary layersexpand()
- show hidden layers
Events
activelayerchange
- fires when user changes active layer (clicks one of layer icons). The changed layer is passed inlayer
key of an event object (see an example).
Detailed example
var iconLayersControl = new L.Control.IconLayers(
[
{
title: 'Map', // use any string
layer: mapLayer, // any ILayer
icon: 'img/mapIcon.png' // 80x80 icon
},
{
title: 'Satellite',
layer: satLayer,
icon: 'img/mapIcon.png'
}
], {
position: 'bottomleft',
maxLayersInRow: 5
}
);
// new L.Control.IconLayers(layers)
// new L.Control.IconLayers(options)
// are also ok
iconLayersControl.addTo(map);
// we can modify layers list
iconLayersControl.setLayers(layers);
iconLayersControl.on('activelayerchange', function(e) {
console.log('layer switched', e.layer);
});