Adds tag filter control for layers (marker, geojson features etc.) to LeafLet. Check out the demo
Required Leaflet.EasyButton
Simple usage :
If your markers contains tags option the plugin filters them by selected tags when popup is closed For example:
var map = L.map('map');
var fastMarker = L.marker([50.5, 30.5], { tags: ['fast'] }).addTo(map);
var slowMarker = L.marker([50.5, 30.5], { tags: ['slow'] }).addTo(map);
var bothMarker = L.marker([50.5, 30.5], { tags: ['fast', 'slow'] }).addTo(map);
L.control.tagFilterButton({
data: ['fast', 'slow']
}).addTo( map );
note: this option not implemented yet!
var map = L.map('map');
L.tagFilterButton({
ajaxData: function(callback) {
$.get('https://leaflet-tag-filter-button.herokuapp.com/data', function(data)) {
callback(data);
}
}
}).addTo( map );
var map = L.map('map');
L.tagFilterButton({
data: function(callback) {
$.get('https://leaflet-tag-filter-button.herokuapp.com/data', function(data)) {
callback(data);
}
},
onSelectionComplete: function(tags) {
console.log('selected tags are', tags);
}
}).addTo( map );
Option | Type | Default | Description |
---|---|---|---|
icon |
String or HTML |
fa-filter |
The button icon. Default is fa-filter. You can use html syntax for the icon for example <img src="/filter.png"> |
onSelectionComplete |
Function |
null |
The callback function for selected tags. It fires when popup is closed and sends selected tags to the callback function as a parameter. |
data |
Array or Function |
null |
The data to be used for tags popup, it can be array or function. If it's a function, the function must return tags array. |
clearText |
String |
clear |
The text of the clear button |
filterOnEveryClick |
Boolean |
false |
if set as true the plugin do filtering operation on every click event on the checkboxes. |
openPopupOnHover |
Boolean |
false |
if set as true, the popup that contains tags will be open at mouse over time. |
Method | Returns | Description |
---|---|---|
update() |
void |
Updates markers with last selected tags. |
hasFiltered() |
Boolean |
returns true if any tag(s) selected otherwise false. |
registerCustomSource(< Object > source ) |
throws an exception if sourcehas no name or source.hide function is not implemented |
Registers source object for filtering markers by tags. If you want to to use this function you must implement hide function |
enablePruneCluster(< PruneCluster > pruneClusterInstance ) |
void |
Searches markers for filtering on given pruneClusterInstance object |
resetCaches(< Boolean > update? ) |
void |
Resets internal caches. if the update parameter sent as true, the update() function will be call after cleaning the cache. |
addToReleated(< TagFilterButton > tagFilterButton) |
Boolean |
If it required to use multiple TagFilterButtons in the same map you must link two instance of TagFilterButtons by using this method. If linking is successful returns true otherwise returns false. |
Please check the Releases page
Thanks to Contributors