Adds tag filter control for marker to LeafLet.
JavaScript CSS API Blueprint HTML
Latest commit b9da670 Feb 9, 2017 @maydemirx UI developments & feature added
improved ui. styles changed and #3 fixed

Leaflet Tag Filter Button

Adds tag filter control for marker to LeafLet.

Required Leaflet.EasyButton

Check out the demo


Simple usage :

If your markers contains tags option the plugin filters them by selected tags when popup is closed For example:

var 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);

    data: ['fast', 'slow']
}).addTo( map );

Set data from external url/ajax :

note: this option not implemented yet!

var map ='map');
    ajaxData: function(callback) {
        $.get('', function(data)) {
}).addTo( map );

Selection complete callback

var map ='map');
    data: function(callback) {
        $.get('', function(data)) {
    onSelectionComplete: function(tags) {
        console.log('selected tags are', tags);
}).addTo( map );

API Docs


Option Type Default Description
icon String|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|Function null The data to be used for tags popup, it can be array or function
clearText String clear The text of the clear button


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 ifsourcehas no name orsource.hidefunction 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.

Change Log

v0.0.2 (30.06.2016)

  • Added multi layer source support.

    You can add a new marker container layer source to plugin and the plugin searches on added source.

  • Added PruneCluster support.

    Added PruneCluster layer source to the plugin as default. You can enable it by enablePruneCluster function.

v0.0.3 (18.08.2016)

  • Moved css of filter info box from code-side to css-side
  • Added resetCaches function for cleaning the internal caches


  • Mehmet Aydemir