Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kibana GIS UI Phase 1 #19582

Closed
48 of 61 tasks
kindsun opened this issue May 30, 2018 · 6 comments
Closed
48 of 61 tasks

Kibana GIS UI Phase 1 #19582

kindsun opened this issue May 30, 2018 · 6 comments
Assignees
Labels
[Deprecated-Use Team:Presentation]Team:Geo Former Team Label for Geo Team. Now use Team:Presentation Meta

Comments

@kindsun
Copy link
Contributor

kindsun commented May 30, 2018

🚧 This ticket is under construction.


Summarizes scope of the first phase for the upcoming GIS app plugin for Kibana.


Overall scope

The GIS app

Features

The following feature list roughly summarizes the scope of the phase 1 version of the GIS plugin.

Note: the below list will only be checked off once the features have been merged into master. Right now, you can track day-2-day progress on the development branch: #24804.

high priority

Layered UX

  • add layer wizard
  • layer ordering
  • layer visibility
  • zoom to bounds of layer

supported layer types

  • raster layer
    • all TMS sources
    • WMS sources ()
  • vector layer
    • EMS sources
    • ES sources
    • geohash grid source
  • heatmap layer
    • geohash grid source

Supported datasources

  • From EMS
    • EMS file layers (aka "regions", (geojson/topojson))
    • EMS TMS service(s)
  • WMS (custom config)
  • TMS (custom config) (decide on url-pattern convention {} or ${})
  • From Kibana.yml
    • TMS from kibana-yml
    • file layers from kibana-yml (geojson/topojson)
  • from index pattern (current-extent aware (?) only consume data that is in view)
    • index patterns with geo_point
      • consume with geohash_grid
      • as individual docs (_search)
    • index patterns with geo_shape
      • as individual docs (_search)

Each data source needs:

  • a UX-form in the add data layer wizard
  • display layer details in the Layer details panel

styling

vector
  • styling properties (need to be data-driven from ordinal field-values or statically selected)
    • Points as circle markers
      • size
      • fill color
    • Lines
      • line thickness
      • line color
    • Polygons
      • fill color
      • outline color
      • outline thickness
raster
  • stylable EMS layers (e.g. dark theme/light theme)

supported operations

"inner joining" of layers to ES term aggregation
  • operation for vector layers, needs UX layer details (support joining to all simple feature geometries)
  • must be filterable (Keury or Lucene-query)
balloon
  • feature identifier with balloon
  • configurable field list
user-based filtering based on drawings
  • must apply to all filterable-layers

workspace management

  • create new GIS workspace
  • open existing GIS workspace
  • persist map state (layer order/visibility/extent/zoom level) in workspace

filterability

  • heatmap/vector layers that are tied to filterable sources, should have UX for people to define filter
    • ES index patterns
      • for linked term aggregations in enrichment UX
      • for individual docs
    • ES geohash grids

data upload

  • upload geojson -> store in index
  • copy EMS file -> store in index (on-prem solution)

dashboard integration

  • embed workspaces in dashboard
  • "global state aware" (time, query/filter)

time filter control

  • dedicated time-slider for time-selection and playback

Table view

  • may require using Inspector
  • table view for vector layer

Proof of concept

The following image shows an example of the scope of Phase 1

7

  • Layered UX showing data from
    • Elasticsearch index (downloads/log and elasticon2018 layers)
    • EMS file data (usa states and country layers)
    • EMS styled background data (dark theme map)
    • custom geojson
  • Mapping invididual documents
    • point vector data is not aggregated. each point corresponds to an individual document
  • Vector data styling
    • Choropleth mapping (the pink color ramp shows document count per country/state)
    • Icon styling (custom icons for the masonic layer and colored circles for the elasticon2018 layer)
  • Applying dark theme stylesheets to EMS world map data
@kindsun kindsun added Meta [Deprecated-Use Team:Presentation]Team:Geo Former Team Label for Geo Team. Now use Team:Presentation labels May 30, 2018
@kindsun kindsun changed the title Kibana GIS Phase 1 Kibana GIS UI Phase 1 May 30, 2018
@trevan
Copy link
Contributor

trevan commented May 30, 2018

Is this x-pack specific?

@kindsun
Copy link
Contributor Author

kindsun commented May 31, 2018

@trevan No hard decisions on this yet. We'll be discussing this more as we get closer to finalizing the code and targeting a release for integration.

@thomasneirynck
Copy link
Contributor

For posterity:

(earlier misc notes in the description of this ticket)

## Resolve immediate friction

Multilayer UIs
- Ability to add more than one layer
- Determine challenges with 3D maps integration (shouldn't hold up integration, but a consideration)

Style layers on-the-fly
- Consider rules for multiple layers styled and stacked, especially global
  - One issue is when you have multiple global bounding boxes, they collectively block out the map
  - Consider strategies for multiple styles & persisting custom styles

Visualize individual documents from index
- Defaults to entire index(?)
- Via “save search” as datastore
  - Filter on data through Kibana

3D Capabilities
- MapBox vs OpenLayers w/ Cesium vs Kepler?
- "2.5D" compromise?

## Feature requests
Real-time analytics for choropleth mapping/nearest neighbor. Where would these go? Some ideas
- Another outside component 
- An embedded popup
- Toggle-able sidebar 

Easy way to add data
- This could be implemented with limited capabilities for Phase 1, expanded for Phase 2
- Quick upload / drag and drop preferred (could re-invigorate CSV upload with GeoJSON support)
- File selection pop-up
- Determine interplay of adding files via config vs. interface. Easiest is that everything is just additive
- Perhaps integrate automated process with Beats (?)

@alepuccetti
Copy link

I propose another enhancement to improve map navigation and usability.

A search box google maps style where you can type an address or landmark and resolve it to the lat long using openstreet map API.
http://nominatim.openstreetmap.org/search?q="london"&format=json (other formats are available, see http://wiki.openstreetmap.org/wiki/Nominatim).

This was also discussed on awesome @nreese enhanced_tilemap plugin discussed in nreese/enhanced_tilemap#75.

Automatically adjust the zoom level dpending on what you are searhed e.g. if you look for "France" or "London" the map should center on the tager on different zoom level relevant to the "interested" area.

Benefits:

  • improve usebility.
  • reduce number of useless intermediate queries running when zooming/moving the map when looking for the place you want ot reach.

@thomasneirynck thomasneirynck mentioned this issue Aug 1, 2018
17 tasks
thomasneirynck added a commit that referenced this issue Dec 19, 2018
This adds the MVP of the Phase 1 version of the Maps Plugin to Kibana (#19582).

This is added as a new Stack Feature, requiring a basic license.
thomasneirynck added a commit to thomasneirynck/kibana that referenced this issue Dec 19, 2018
This adds the MVP of the Phase 1 version of the Maps Plugin to Kibana (elastic#19582).

This is added as a new Stack Feature, requiring a basic license.
thomasneirynck added a commit that referenced this issue Dec 21, 2018
* Update to new version of EMS (#26511)

This updates Kibana to use the 6.6 version of EMS. It introduces a new library `ems_client`, to parse the manifests. This library will be used by the upcoming GIS-app. The original visualizations continue to use service_settings, but this component has now been rewritten to use this new `ems_client` client.

This backport required manual edits due to differences in the schema.js diff.

* [GIS] Add Maps Plugin (#24804)

This adds the MVP of the Phase 1 version of the Maps Plugin to Kibana (#19582).

This is added as a new Stack Feature, requiring a basic license.
@thomasneirynck
Copy link
Contributor

thomasneirynck commented Jan 15, 2019

Closed with 5840370 (7.0) and 7e65c47 (6.7)

Any outstanding issues are logged separately. Issue titles start with [Maps].

@foreman3
Copy link

Congratulations! Can't wait!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Deprecated-Use Team:Presentation]Team:Geo Former Team Label for Geo Team. Now use Team:Presentation Meta
Projects
None yet
Development

No branches or pull requests

6 participants