Skip to content

Create a component to display results with geo_points on a map #760

@nickpeihl

Description

@nickpeihl

Is your feature request related to a problem? Please describe.
Some indices like the US National Parks tutorial dataset contain geolocations as latitude, longitude points. It should be possible to for users to display search results with geolocations on a map.

Describe the solution you'd like
I propose we create a re-usable component (ex. ResultsMap) similar to the Results component where the output is a map instead of a list. This component could display latitude, longitude points over a basemap for indices that contain geo_point fields. The component could use the React Map-GL component with Maplibre and the basemaps from Elastic Maps Service.

Each point in the ResultsMap component could have a popup tooltip when hovered on or clicked that can display more context from the result. The map could display any number of points up to the index.max_result_window size (10,000 by default). Optionally, results could be clustered based on zoom level or limited by paging.

Describe alternatives you've considered
The Vector Tile Search API endpoint returns a much smaller binary result specifically designed for maps. These results can be rendered much more quickly and can even surpass the index.max_results_window as the map is split into tiles each using a separate search request. However, this would require the SearchDriver to support requests to multiple endpoints.

Additional context
Here is a mock-up of what I imagine the result would look like alongside the existing search box and facets.

search-ui-resultsmap

cc @elastic/kibana-gis

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions