nreese
enhanced_tilemap
JavaScript

Kibana mapping visualization

Last updated Aug 28, 2024
65
Stars
24
Forks
23
Issues
0
Stars/day
Attention Score
37
Language breakdown
No language data available.
Files click to expand
README

enhanced_tilemap

Kibana ships with a functional tilemap visualization. This plugin provides an additional tilemap visualization containing the enhancments listed below.

Better Performance

Geohash aggregation filtered by geoboundingbox collar

Resolves issue Filter geohashgrid aggregation to map view box with collar

Load geohash grids without blocking user interface

The existing tilemap loads all of the geohash grids at a single time. This can result in adding hundreds or even thousands of DOM elements at a single time. The browser is locked up while this process occurs.

The enhanced tilemap plugin phases-in geohash grids, loading 100 every 200 milliseconds, so that the browser never locks up. A control with a spinning icon is added to the map while grids are being phased-in. The control is removed once all grids are processed.

Richer Popups

Show more than just the aggregation metric when mousing over a geohash grid marker. The enhanced tilemap allows for the display of any kibana visualization or saved search inside the popup. The visualization or saved search are filtered by the geogrid coordinates - showing just the results for the moused-over cell. alt text

Contextual Overlays

Overlay Saved Search results as map markers

WMS Overlay

Add a WMS overlay to the tilemap.

View aggregated results and document features in the same map. When Sync kibana filters is checked, kibana filters are sent to the WMS server resulting in tiles that reflect the time range, search query, and filters of your kibana application. Requires WMS to be served from an elasticsearch Store. Follow the geoserver guide for instructions on setting up a WMS layer pulling data from your elasticsearch cluster.

Complete Geospatial Query Support

alt text

Geo polygon query support

Click the polygon icon and draw a polygon on the map. The enhanced tilemap plugin will create a geo_polygon filter.

geo_shape datatype query support

The geohashgrid aggregation only supports the geopoint datatype. Geospatial queries created by the existing tilemap plugin can only be applied to the geopoint field selected for the aggregation. When your data represents large geospatial shapes, this limitation can provide misleading results as documents that intersect the query my be omitted if their point representation is not accurately reflected in a geopoint field.

While the enhanced tilemap plugin cannot provide geohashgrid aggregation support for the geoshape datatype, it does provide the ability to create geospatial queries on a geoshape datatype. That way, queries accurately represent the results for geospatial shape intersection. Note: The index still requires a geopoint field for the aggregation (storing the center of the shape as a geo_point field works well).

OR geospatial queries

Kibana's tilemap visualization has a neat feature where you can draw a rectangle on the map and create a geoboundingbox filter. The limitation arises when multiple bounding boxes are needed. Each drawn rectangle creates a new geoboundingbox filter that are ANDed together resulting in "No results found" messages across all visualizations.

The enhanced tilemap visualization allows for the creation of multiple geospatial filters that will be ORed together. Each drawn rectangle or polygon will append a geo filter to an ORed array.

And More

alt text

  • Set view Leaflet control.
  • mouse latitude and longitude display control. Click display to toggle decimal degrees, degrees minutes seconds, and MGRS.
  • Map scale control. Click for measurement tool.
  • Scroll map on mouse zoom. Feature can be turned off in options.
  • Slider control in legend to hide aggregation grids outside of selected range.

Static quantized range bands

The existing tilemap generates quantized range bands dynamically. The enhanced_tilemap provides the ability to set static quantized range bands.

Sync maps

Sync map movements when dashboard contains multiple map visualizations. Map syncing implemented with Leaflet.Sync

Performance tip Store enhancedtilemaps belonging to the same dashboard at identical zoom levels. When enhancedtilemaps are stored with different zoom levels, the browser will have to make 2 requests to elasticsearch for data. The first will get all data at different zoom levels. Then the next, will fetch all data at identical zoom levels. The second request can be avoided if all maps are stored at identical zoom levels. Check the map zoom level by clicking the set view control (eye icon) in the upper left corner of the map display.

Install

Kibana 5.x

./bin/kibana-plugin install https://github.com/nreese/enhanced_tilemap/releases/download/v2017-04-19/enhanced-tilemap-v2017-04-19-5.0.2.zip
./bin/kibana-plugin install https://github.com/nreese/enhanced_tilemap/releases/download/v2017-04-19/enhanced-tilemap-v2017-04-19-5.1.2.zip
./bin/kibana-plugin install https://github.com/nreese/enhanced_tilemap/releases/download/v2017-04-19/enhanced-tilemap-v2017-04-19-5.2.2.zip
./bin/kibana-plugin install https://github.com/nreese/enhanced_tilemap/releases/download/v2017-04-19/enhanced-tilemap-v2017-04-19-5.3.0.zip

Kibana 4.x

./bin/kibana plugin -i enhancedtilemap -u https://github.com/nreese/enhancedtilemap/archive/4.x.zip

Uninstall

Kibana 5.x

./bin/kibana-plugin remove enhanced_tilemap

Development

Build plugin

  • clone git repo in kibana_home/plugins
  • cd kibanahome/plugins/enhancedtilemap
  • bower install

Run unit tests

Use npm@2 (as root npm install -g 'npm@<3'). npm@3 installs dependencies as maximally flat. As a result, kibanahome/plugins/enhancedtilemap/nodemodules contains the folder lodash. During the kibana build process, require.js finds this version of lodash instead of the version under kibanahome/nodemoduldes. If you don't want to install npm@3, then manually delete the folder kibanahome/plugins/enhancedtilemap/nodemodules before kibana builds kibanahome/optimze/bundles/kibana.bundle.js.
  • clone git repo in kibana_home/plugins
  • cd kibanahome/plugins/enhancedtilemap
  • npm install
  • npm test
🔗 More in this category

© 2026 GitRepoTrend · nreese/enhanced_tilemap · Updated daily from GitHub