Leaflet.FeatureGroup.SubGroup
Creates a Leaflet Feature Group that adds its child layers into a parent group when added to a map (e.g. through L.Control.Layers).
Typical usage is to dynamically add/remove groups of markers from Marker Cluster.
Leaflet.markercluster plugin provides beautiful animated Marker Clustering functionality.
Leaflet is the leading open-source JavaScript library for mobile-friendly interactive maps.
Size: 2 kB minified, < 1 kB gzipped.
Requirements
Requires Leaflet 1.0.0
For Leaflet 0.7 use the v0.1.2 release or the leaflet-0.7 branch
Optional: Leaflet.markercluster plugin
Demos
- SubGroup with standard L.Control.Layers and MarkerCluster
- SubGroup with standard L.Control.Layers to display Nested Groups
Usage instructions
Quick Guide
HTML:
<!-- after Leaflet script -->
JavaScript:
var map = L parentGroup = L // Could be any other Layer Group type. // This is where the magic happens! mySubGroup = LfeatureGroup; parentGroup;mySubGroup;
Now adding the sub-group to the map adds clustered markers!
It should virtually be compatible with any LayerGroup plugin, not only MarkerCluster.
Installing the sub-plugin
Local copy
- Download the "
leaflet.featuregroup.subgroup.js
" file from thev1.0.2
release. - Place the file alongside your page.
- Add the
script
tag (see Quick Guide > HTML) to your page after Leaflet script.
CDN
You can alternatively use the free unpkg CDN service, but keep in mind that it "is a free, best-effort service and cannot provide any uptime or support guarantees".
<!-- After Leaflet script -->
Creation
Simply use the L.featureGroup.subGroup
factory instead of your regular L.featureGroup
or L.layerGroup
:
var mySubGroup = LfeatureGroup; mySubGroup;
Do not forget to add the parent group to your map.
API Reference
Creation
Factory | Description |
---|---|
L.featureGroup.subGroup( <ILayer> parentGroup?, <ILayer[]> layersArray? ) |
Creates a sub-group with events, optionally given a parent group and an initial array of child layers. |
Methods
Method | Returns | Description |
---|---|---|
setParentGroup( <ILayer> parentGroup ) |
this |
Changes the parent group into which child markers are added to / removed from. |
setParentGroupSafe( <ILayer> parentGroup ) |
this |
Removes the current sub-group from map before changing the parent group. Re-adds the sub-group to map if it was before changing. |
getParentGroup() | <ILayer> |
Returns the current parent group. |
SubGroup does not provide any extra option or event beyond what L.LayerGroup and L.FeatureGroup already provide.
Limitations
If you change the parent group while the sub-group and/or its child markers are still on map, unexpected behaviour of the previous and/or new parent groups can happen.
Make sure the sub-group and its child layers are removed from map before changing the parent group, or use the setParentGroupSafe
method instead.
License
Leaflet.FeatureGroup.SubGroup is distributed under the BSD 2-clause "Simplified" License, like Leaflet.