diff options
Diffstat (limited to 'extlib/leaflet/src/layer/FeatureGroup.js')
-rw-r--r-- | extlib/leaflet/src/layer/FeatureGroup.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/extlib/leaflet/src/layer/FeatureGroup.js b/extlib/leaflet/src/layer/FeatureGroup.js new file mode 100644 index 00000000..6e45d84c --- /dev/null +++ b/extlib/leaflet/src/layer/FeatureGroup.js @@ -0,0 +1,40 @@ +/*
+ * 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);
+
+ if (this._popupContent && layer.bindPopup) {
+ layer.bindPopup(this._popupContent);
+ }
+ },
+
+ bindPopup: function(content) {
+ this._popupContent = 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);
+ }
+});
\ No newline at end of file |