Plugin icon

FilterMate

Plugin ID: 3196

πŸš€ The ultimate spatial filtering plugin! Explore, filter & export vector data with lightning-fast performance on ANY data source. Full QGIS 4 / Qt6 support.

(24) votes 
Download latest
Versions JSON
Latest version

🎯 FilterMate 4.9.2 - Your Swiss Army Knife for Spatial Data!

Stop struggling with complex filters. FilterMate makes spatial queries intuitive, fast, and powerful.

🌟 WHY FILTERMATE?
━━━━━━━━━━━━━━━━━
βœ“ Works with EVERYTHING: PostgreSQL, Spatialite, GeoPackage, Shapefiles, WFS...
βœ“ Lightning fast: 2-8Γ— faster with 4 performance optimizers + smart caching
βœ“ Intuitive: Filter by clicking, drawing, or selecting - no SQL needed!
βœ“ Professional: Undo/Redo, Favorites, Dark Mode, 34 languages
βœ“ Shareable: Git-backed favorites sharing + REST API for automation

πŸ”₯ KILLER FEATURES:
━━━━━━━━━━━━━━━━━━
πŸ“ Geometric filtering with buffer, intersection, containment...
πŸ” Smart entity search across any layer type
⭐ Save & share your favorite filter configurations with spatial context
🀝 Publish favorites to git repos (private/team) with authcfg credentials
🌐 REST API to drive FilterMate from external tools (X-API-Key auth)
πŸ“¦ One-click export to GeoPackage with embedded QGIS project (preserves group structure, styles & CRS)
🎨 Beautiful UI that adapts to your QGIS theme
⚑ Filter chaining with dynamic buffer expressions

πŸ’‘ v4.9.2: Fix the GeoPackage layer that showed 0 features when re-filtered as a source after being filtered as a target (a closing parenthesis was lost while combining the new expression with the R-tree subset, invalid SQL accepted silently by OGR); with the combine option off, a new source filter now replaces the previous subset instead of being ANDed to it.
πŸ’‘ v4.9.1: Fix the filter refused on the first click on PostgreSQL selections of 100 000 features or more (materialized-view path called a missing facade method), fix after a project switch with the panel open ("wrapped C/C++ object of type QgsVectorLayer has been deleted" when the previous layer is gone) and a QGIS crash after a plugin reload followed by a project close (the panel is now removed and deleted on unload, so no feature-picker gather can outlive its layer); timing lines for the validate/reset steps of a layer change.
πŸ’‘ v4.9.0: Open another project with the panel open and it follows (four causes fixed and verified in QGIS 4.2), one stable FilterMate project row per project and no more duplicated favorites, PostgreSQL feature list without the server-side sort that fetched the whole table (13 s β†’ 30 ms) and deferred while the canvas renders (no more 17 s freeze at project open), type-to-find in the layer combo, busy cursor and pressed button during tasks, plain-language error messages, accessible names, lighter zip, lint in CI, Qt6 enum guard.
πŸ’‘ v4.8.10: PostgreSQL buffer filters (ST_DWithin + source envelope prefilter on the target's GiST index: a roads + 20 m buffer cascade went from never finishing to 25 s for 16 layers), source-selection materialized view repaired, panel reloads on project switch whatever APP.AUTO_ACTIVATE, GeoPackage buffers applied once in QGIS (no convex hull), OGR buffer cached per task, 48 SQL templates restored.
πŸ’‘ v4.8.9: Measured performance release. GeoPackage spatial cascades use the R-tree of each target table (a 37-layer filter by the commune of Toulouse went from 371 s to under 3 s), PostgreSQL targets keep their GiST index with the centroid option (49.6 s to under 4 s), no double scan after a filter, canvas frozen for the whole task, no more localhost/IPv6 connection stall, fewer counts and repaints. Fix: filter with no target layer.
πŸ’‘ v4.8.8: Performance release. Multiple-selection list bounded by feature_picker_limit (sorted, server-side text search, Select All loads the full list) and one indexed lookup per click instead of a full-layer scan. Layer variables applied per layer in one batched write at project load. GEOS cascaded union, attribute-free source loading and immediate wake-up of interruptible Spatialite queries. Stale unsaved projects purged from the FilterMate database. INFO log level by default, timing lines (project_open, layer_change, task_filter) in filtermate.log.
πŸ’‘ v4.8.7: Consistent controls, button bars and panel backgrounds across dark, light and gray themes. Clearer Exploring titles and configuration text. Fix icon-theme synchronization errors and avoid repeated work during bulk layer removal and shutdown.
πŸ’‘ v4.8.6: QGIS 3/4 theme synchronization for existing profiles, readable dark-mode PNG icons and aligned filtering rows. Retains Qt5/Qt6 checkbox and mouse-event fixes.
πŸ’‘ v4.8.4: Fixed the checkbox primitive name (PE_IndicatorItemViewItemCheck) and mouse position handling across Qt5 and Qt6.
πŸ’‘ v4.8.3: Config log cleanup β€” the "Schema file not found" message logged on every config reload (config_schema.json was intentionally removed in a prior release) is now Info instead of Warning. Also closed out 2 live-testing reports as confirmed non-bugs (QGIS3-named settings path is QGIS 4.2's own behavior; "Adding layers" progress is QGIS-core, not FilterMate).
πŸ’‘ v4.8.2: πŸš‘ Second QGIS 4.x hotfix β€” v4.8.1's fix still crashed ("DockWidgetFeature has no attribute AllDockWidgetFeatures"): that convenience constant was deprecated in Qt 5.13 and fully removed in Qt6, not just rescoped. Now ORs the 3 individual flags it used to expand to.
πŸ’‘ v4.8.1: πŸš‘ Critical fix for QGIS 4.x β€” the dockwidget failed to load entirely ("QDockWidget has no attribute AllDockWidgetFeatures") because PyQt6's UI loader can't resolve the .ui file's features flag; now set programmatically instead. Also fixed BatchFilterAlgorithm.tr() crashing the Processing Toolbox entry. Found via real-world QGIS 4.2/Windows testing right after v4.8.0 shipped.
πŸ’‘ v4.8.0: πŸŽ‰ Full QGIS 4.2 / Qt6 support! Three sweeps across the whole codebase β€” QMetaType field-type migration, QtWidgetsβ†’QtGui relocations (QShortcut & co.), remaining flat-enum fixes β€” plus 2 AST regression guards to keep it that way. New: FilterMate algorithms now in the Processing Toolbox (batch-filter multiple layers with one expression).
πŸ’‘ v4.7.3: Stability + Qt6-readiness release. Fix crash on QGIS 4.0.1/Windows when the standalone sip package wasn't importable (unguarded top-level import in the dockwidget). Security β€” resolved all Bandit findings (asserts replaced with explicit raises, corrected nosec code for ElementTree import, documented exception-suppression guards). Qt6 readiness β€” qualified ~165 flat PyQt/PyQGIS enum accesses to their scoped form and dropped exec_() across 50 files, no Qt5 behavior change.
πŸ’‘ v4.7.2: Spatial filtering fixes (SpatiaLite source_srid staleness causing silent 0-feature filters, Custom Selection "all-features" mode no longer shadowed by a stale layer selection), export hardening (blocked export with no Exploring selection, SHP/batch warnings surfaced, GPKG styles embedded on reprojection + streaming, empty-layer streaming crash fixed, partial-file cleanup on failure/cancel, format registry consolidation, ~900 LOC dead export code removed), HIDPI display fix (combobox/input stuck at 20px on 4K/Retina/150%+ scaling)
πŸ’‘ v4.7.1: Hardening release β€” export pipeline (12 fixes across SHP/CSV/GPKG/SpatiaLite/ZIP), spatialite cascade (drop GeomFromGPB wrap, preserve ST_* + EXISTS/NOT predicates), Qt main-thread marshalling for QGISFilterMateAccessor, REST API hardening (503 favorites, no input echo, 1 MiB body cap, api_key hash-at-rest), portable Git SHA-256 digest enforcement, favorites deep audit follow-through (37 findings, FavoritesSpatialHandler extraction, FavoritesError exception family), auto-zoom on filtered union, +200 tests (1493 βœ…)

πŸ“– Full docs: https://imagodata.github.io/filter_mate

Version QGIS >= QGIS <= Date
4.9.2 - 3.22.0 4.99.0 178 imagodata 2026-09-14T18:48:11.477773+00:00
4.8.7 - 3.22.0 4.99.0 96 imagodata 2026-09-09T19:13:13.509890+00:00
4.8.3 - 3.22.0 4.99.0 329 imagodata 2026-08-01T08:55:49.234275+00:00
4.7.3 - 3.22.0 4.99.0 101 imagodata 2026-07-30T09:21:34.508324+00:00
4.7.1 - 3.22.0 4.99.0 592 imagodata 2026-04-29T14:41:00.490354+00:00
4.7.0 - 3.22.0 4.99.0 140 imagodata 2026-04-27T11:31:43.466283+00:00
4.6.6 - 3.22.0 4.99.0 281 imagodata 2026-04-08T08:34:43.217843+00:00
4.6.5 - 3.22.0 4.99.0 79 imagodata 2026-04-08T08:20:19.357235+00:00
4.6.4 - 3.22.0 4.99.0 135 imagodata 2026-04-07T11:45:36.406654+00:00
4.6.2 - 3.22.0 4.99.0 283 imagodata 2026-03-17T09:16:45.762657+00:00
4.6.1 - 3.22.0 4.99.0 193 imagodata 2026-03-09T19:17:46.406301+00:00
4.6.0 - 3.22.0 3.99.0 227 imagodata 2026-02-18T15:16:29.299576+00:00
4.5.2 - 3.22.0 3.99.0 172 imagodata 2026-02-12T10:33:36.171861+00:00
4.5.1 - 3.22.0 3.99.0 90 imagodata 2026-02-12T00:15:33.856035+00:00
4.5.0 - 3.22.0 3.99.0 81 imagodata 2026-02-11T21:36:03.432005+00:00
4.4.6 - 3.0.0 3.99.0 273 imagodata 2026-01-26T23:18:39.953755+00:00
4.4.5 - 3.0.0 3.99.0 118 imagodata 2026-01-25T09:30:35.469510+00:00
4.4.0 - 3.0.0 3.99.0 134 imagodata 2026-01-22T21:52:04.513745+00:00
4.3.10 - 3.0.0 3.99.0 91 imagodata 2026-01-22T15:12:47.666911+00:00
4.3.0 - 3.0.0 3.99.0 91 imagodata 2026-01-22T00:44:53.748154+00:00
4.2.6 - 3.0.0 3.99.0 132 imagodata 2026-01-19T16:07:03.816512+00:00
4.2.5 - 3.0.0 3.99.0 82 imagodata 2026-01-19T12:16:10.415360+00:00
3.0.0 - 3.0.0 3.99.0 206 imagodata 2026-01-07T12:48:06.337547+00:00
2.9.4 - 3.0.0 3.99.0 130 imagodata 2026-01-05T11:50:40.153910+00:00
2.9.3 - 3.0.0 3.99.0 98 imagodata 2026-01-05T09:18:21.267104+00:00
2.9.2 - 3.0.0 3.99.0 111 imagodata 2026-01-04T13:46:48.547192+00:00
2.8.6 - 3.0.0 3.99.0 104 imagodata 2026-01-04T10:14:23.360258+00:00
2.8.5 - 3.0.0 3.99.0 91 imagodata 2026-01-04T00:04:40.545525+00:00
2.8.4 - 3.0.0 3.99.0 94 imagodata 2026-01-03T23:35:35.066279+00:00
2.8.1 - 3.0.0 3.99.0 81 imagodata 2026-01-03T21:48:03.061540+00:00
2.6.7 - 3.0.0 3.99.0 106 imagodata 2026-01-03T04:20:50.313813+00:00
2.6.3 - 3.0.0 3.99.0 113 imagodata 2026-01-02T21:44:38.163576+00:00
2.5.7 - 3.0.0 3.99.0 121 imagodata 2025-12-31T11:05:53.623604+00:00
2.5.6 - 3.0.0 3.99.0 109 imagodata 2025-12-30T13:42:27.687703+00:00
2.5.5 - 3.0.0 3.99.0 91 imagodata 2025-12-29T19:37:16.133779+00:00
2.5.4 - 3.0.0 3.99.0 84 imagodata 2025-12-29T17:24:06.128841+00:00
2.4.7 - 3.0.0 3.99.0 153 imagodata 2025-12-24T11:15:56.015803+00:00
2.4.6 - 3.0.0 3.99.0 88 imagodata 2025-12-24T10:25:20.686512+00:00
2.4.5 - 3.0.0 3.99.0 107 imagodata 2025-12-23T12:52:13.583858+00:00
2.4.3 - 3.0.0 3.99.0 111 imagodata 2025-12-22T21:47:33.431587+00:00
2.3.9 - 3.0.0 3.99.0 106 imagodata 2025-12-22T14:19:16.165843+00:00
2.3.8 - 3.0.0 3.99.0 139 imagodata 2025-12-19T15:56:52.679505+00:00
2.3.7 - 3.0.0 3.99.0 124 imagodata 2025-12-18T09:47:09.614639+00:00
2.3.6 - 3.0.0 3.99.0 99 imagodata 2025-12-17T23:18:08.996163+00:00
2.3.5 - 3.0.0 3.99.0 99 imagodata 2025-12-17T16:33:50.106468+00:00
2.3.4 - 3.0.0 3.99.0 104 imagodata 2025-12-16T21:28:45.495815+00:00
2.3.3 - 3.0.0 3.99.0 125 imagodata 2025-12-15T16:18:28.827672+00:00
2.3.2 - 3.0.0 3.99.0 106 imagodata 2025-12-15T13:55:46.478282+00:00
2.3.1 - 3.0.0 3.99.0 130 imagodata 2025-12-14T19:27:44.224414+00:00
2.3.0 - 3.0.0 3.99.0 90 imagodata 2025-12-13T21:39:37.306584+00:00
2.2.5 - 3.0.0 3.99.0 184 imagodata 2025-12-08T14:54:11.427247+00:00
2.2.4 - 3.0.0 3.99.0 99 imagodata 2025-12-08T12:44:06.175373+00:00
2.2.3 - 3.0.0 3.99.0 94 imagodata 2025-12-08T10:18:14.597579+00:00
2.2.2 - 3.0.0 3.99.0 114 imagodata 2025-12-07T23:47:01.480050+00:00
2.2.0 - 3.0.0 3.99.0 104 imagodata 2025-12-07T21:24:51.664954+00:00
2.1.0 - 3.0.0 3.99.0 117 imagodata 2025-12-07T02:10:11.918985+00:00
2.0.0 - 3.0.0 3.99.0 85 imagodata 2025-12-07T02:07:42.567860+00:00
1.8 - 3.0.0 3.99.0 2507 imagodata 2024-03-19T21:43:47.549993+00:00
1.7 - 3.0.0 3.99.0 1362 imagodata 2023-12-21T09:35:47.994407+00:00
1.6 - 3.0.0 3.99.0 1106 imagodata 2023-12-08T12:32:43.408983+00:00
1.5 - 3.0.0 3.99.0 577 imagodata 2023-12-03T16:28:22.828271+00:00
1.4 - 3.0.0 3.99.0 606 imagodata 2023-11-27T09:52:32.390346+00:00
1.3 - 3.0.0 3.99.0 697 imagodata 2023-11-24T11:41:02.518926+00:00
1.2 - 3.0.0 3.99.0 979 imagodata 2023-11-23T11:38:51.816655+00:00
1.1 - 3.0.0 3.99.0 271 imagodata 2023-11-22T12:20:35.044391+00:00