/* * L.FeatureGroup extends L.LayerGroup by introducing mouse events and bindPopup method shared between a group of layers. */ L.FeatureGroup = L.LayerGroup.extend({ includes: L.Mixin.Events, addLayer: function(layer) { this._initEvents(layer); L.LayerGroup.prototype.addLayer.call(this, layer); }, bindPopup: function(content) { for (var i in this._layers) { if (this._layers.hasOwnProperty(i) && this._layers[i].bindPopup) { this._layers[i].bindPopup(content); } } }, _events: ['click', 'dblclick', 'mouseover', 'mouseout'], _initEvents: function(layer) { for (var i = 0, len = this._events.length; i < len; i++) { layer.on(this._events[i], this._propagateEvent, this); } }, _propagateEvent: function(e) { e.layer = e.target; e.target = this; this.fire(e.type, e); } });