Elastic Maps has been released as GA in Kibana 7.3 and is production ready. Elastic Maps was first introduced in Kibana 6.7 with a beta release. The path from beta to GA is filled with so many new features that it’s difficult to keep up. This blog post highlights the top 10 features added along the way.
1) Embed map in dashboard
Elastic Maps now adds the ability to include your saved map on a dashboard. You can view and interact with your geospatial data alongside bar charts, pie charts, and other visualizations. Click the map to quickly hone in on the data you desire, and that data is shown across the dashboard, similar to how you interact with other visualization types. Use the drawing to tool and create geofences to narrow the dashboard to geographic areas of interest.
2) GeoJSON upload
Another notable Maps improvement is that it’s now easier to get your geospatial data into the Elastic Stack. Use the new GeoJSON upload feature (beta) to drag and drop your points, shape files, and features and ingest them directly into Elasticsearch. When using GeoJSON upload to ingest shape files, you can join on terms in other indices. This enables a very similar experience to an Elastic Maps Service layer but with your own custom shape files.
3) Improved legend
There is a lot going on in your maps, with multiple layers and multiple ways to style each layer. The legend saw significant improvements from beta. In beta, the legend only displayed the layer icon and name. In GA, the legend is your go-to resource for understanding your map.
Hovering over the layer name opens a tooltip providing meaningful feedback about each layer. The legend icon also indicates the layer status: error, out-of-zoom-range, no data, or hidden.
Each layer can be individually expanded/collapsed to show the scale for dynamically styled properties. Best of all, if the legend is getting in the way, just collapse it entirely to get an unobstructed view of your map.
4) Symbolize points with icons
The beta release limited symbolizing points to only circles. You can now symbolize your points with icons that you can color, size, and rotate based on property values.
5) Dark themed tiles
Building on the support for dark mode in Kibana 7.0, the Elastic Maps Service now publishes dark themed tiles. Configure your EMS tile layers with “Autoselect on Kibana theme” and your map tiles will seamlessly switch between bright and dark themed tiles, respecting Kibana’s dark mode.
6) Improved tooltips
In Elastic Maps beta release, tooltips only showed properties for the top feature. Now tooltips display a count of features at the current location. Pagination controls give you the ability to cycle through all features and view their properties. Elastic Maps GA release also includes the ability to provide custom labels for Grid aggregation metrics and Term join metrics. Tooltips were also improved to use Index pattern field formatters to format field values.
7) Class styling with layer filtering
Class styling symbolizes features by class and requires multiple layers.
- Define the class for each layer by applying a search to the individual layer by setting Filters in the layer details panel.
You can also specify a
where clause for term joins to narrow the results.
- Use “Clone layer” action in Layer Actions menu to quickly copy layers.
- Finally, use static styling to symbolize each layer.
8) Most recent entities
Most recent entities uses Elasticsearch terms aggregation to group your documents by entity. Then, top hits metric aggregation accumulates the most recent documents for each entry. This is useful for visualizing GPS tracks, to show the last known location of a vehicle. The example below uses most recent entities to show the location of public transportation buses in Toronto, CA.
9) New subdivision layers in Elastic Maps Service
First level subdivisions of all countries in South America are now available in Elastic Maps. Each layer includes the ISO 3166-2 code, which can be joined to aggregation results from Elasticsearch. The example below shows a count of unique web visitors by joining the
nginx.access.geoip.region_iso_code field from an Elasticsearch index to the ISO 3166-2 code in the vector layers.
10) Disable global search bar for any layer
You can now disable the global search bar for any layer so that the search bar does not impact the results for a layer. This is really useful when your map contains layers from multiple indices and searching one index causes other indices to result in empty layers because a field exists in one index, but does not exist in other indices.