Filter dashboard based on bounds drawn on chloropleth map

I have followed the reverse geocoding example and the basics work great using Kibana 7.16. I have left the 'apply global search to layer data' option turned off so that the map updates when I filter observations in a dashboard.

Now I would like to filter observations using the 'Draw bounds to filter data' tool such that the remaining visualisations of the dashboard are updated correspondingly. However, the current setup fails. Is there a way to make this work?

Geo filter fails

Attribute filter works

Your issue is described here.

The problem is that we have two different sources to filter (the left and right sides of the term join) but filters by default are applied to all sources. This is the same behaviour in Dashboards where a filter is applied to all present data views (aka index patterns).

If you want to filter your business data, that's the right side of the term join then you need to switch off the knob in the Filtering panel that refers to Apply global search to layer data

If you want to filter your geospatial data, that's the left side of the term join, then you need to enable the knob in the Filtering panel, and switch off the knob in the Term joins panel labeled as Apply global search to join

You can take a look at the queries performed using the Inspect tool and see how the filters are applied to the two sources.

The only way I can imagine you can apply both types of filters are making your right source having a geometry with the same name (say coordinates) of the left side, and then disabling the Filtering switch only so you pass the geospatial filter to the data on the right side (the points) instead of the polygons.

This feels a bit of a hack, but it may work for your use case.

cc @Nathan_Reese

Awesome. Thank you for the quick reply and the detailed explanation. I will try the hack :slight_smile:

1 Like