-
Notifications
You must be signed in to change notification settings - Fork 8.1k
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
[Maps] Use ES mvt #114553
[Maps] Use ES mvt #114553
Conversation
…o handling undefined _index. MVT now provides _index
@elasticmachine merge upstream |
Pinging @elastic/kibana-gis (Team:Geo) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
scope exceeds original goals. I'm +1 on this change. thx!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, code review and tested in chrome. This is such a huge improvement. Elasticsearch MVTs have such an amazing performance boost.
Anything that I am still unhappy with is tracked in #116150 and can be fixed at a later time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested with Chrome and Firefox and I haven't got a single glitch. I will open a separate issue for removing labels in super-fine
grid since they don't make any sense with such small squares but other than that, I've tested medium/large datasets with point, lines, and polygon geometry types and they render fast, panning now around is a great experience. Beautiful job everyone!
💛 Build succeeded, but was flaky
Test Failures
Metrics [docs]Module Count
Public APIs missing comments
Async chunks
Page load bundle
Unknown metric groupsAPI count
References to deprecated APIs
History
To update your PR or re-run it, just comment with: |
* tmp * tmp * tmp * tmp * tmp * use es naming * typo * organize files for clarity * plugin for hits * tmp * initial styling * more boilerplate * tmp * temp * add size support * remove junk * tooltip * edits * too many features * rename for clarity * typing * tooltip improvements * icon * callouts * align count handling * typechecks * i18n * tmp * type fixes * linting * convert to ts and disable option * readd test dependencies * typescheck * update yarn lock * fix typecheck * update snapshot * fix snapshot * fix snapshot * fix snapshot * fix snapshot * fix test * fix tests * fix test * add key * fix integration test * move test * use centroid placement * more text fixes * more test fixes * Remove top terms aggregations when switching to super fine resolution (#114667) * [Maps] MVT metrics * remove js file * updateSourceProps * i18n cleanup * mvt labels * remove isPointsOnly from IVectorSource interface * move get_centroid_featues to vector_layer since its no longer used in server * labels * warn users when selecting scaling type that does not support term joins * clean up scaling_form * remove IField.isCountable method * move pluck code from common to dynamic_style_property * move convert_to_geojson to es_geo_grid_source folder * remove getMbFeatureIdPropertyName from IVectorLayer * clean up cleanTooltipStateForLayer * use euiWarningColor for too many features outline * update jest snapshots and eslint fixes * update docs for incomplete data changes * move tooManyFeatures MB layer definition from VectorLayer to TiledVectorLayer, clean up VectorSource interface * remove commented out filter in tooltip_control add api docs for getMbLayerIds and getMbTooltipLayerIds * revert changing getSourceTooltipContent to getSourceTooltipConfigFromGeoJson * replace DEFAULT_MAX_RESULT_WINDOW with loading maxResultWindow as data request * clean up * eslint * remove unused constants from Kibana MVT implemenation and tooManyFeaturesImage * add better should method for tiled_vector_layer.getCustomIconAndTooltipContent jest test * fix tooltips not being displayed for super-fine clusters and grids * fix check in getFeatureId for es_Search_sources only * eslint, remove __kbn_metadata_feature__ filter from mapbox style expects * remove geoFieldType paramter for tile API * remove searchSessionId from MVT url since its no longer used * tslint * vector tile scaling option copy update * fix getTile and getGridTile API integration tests * remove size from _mvt request body, size provided in query * eslint, fix test expect * stablize jest test * track total hits for _mvt request * track total hits take 2 * align vector tile copy * eslint * revert change to EsSearchSource._loadTooltipProperties with regards to handling undefined _index. MVT now provides _index * clean up * only send metric aggregations to mvt/getGridTile endpoint * update snapshot, update getGridTile URLs in tests * update request URL for getGridTile * eslint Co-authored-by: Nathan Reese <reese.nathan@gmail.com> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Friendly reminder: Looks like this PR hasn’t been backported yet. |
Replace Kibana's mvt generation with Elasticsearch ES-mvt generation
Vector tile drawing of Elasticsearch data is going GA in Kibana Maps
This PR removes the Kibana implementation of mapbox vector tiles (
" mvt"
) (https://docs.mapbox.com/vector-tiles/reference/), in favor of the mvt-implementation in Elasticsearch( cf. https://www.elastic.co/guide/en/elasticsearch/reference/current/search-vector-tile-api.html)Since 7.11, the Kibana implementation of mvt was a beta-feature, and being used for:
With this change to using Elasticsearch, both these capabilities are now going GA.
Increase geo-data volume on screen
This change significantly enhances the amount of geo-data that can be shown on screen.
Displaying more individual documents
Each tile contains up to the
max_result_window
of features. This is a per-index setting https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html. A single view contain will conist of 4-9 tiles.Displaying clusters at high resolution
The super-fine resolutions displays up to 128x128 cells per tile, creating high-res cluster maps
Other changes
The client-side data-mapping is no longer possible for ES document layers
This switch is always on by default for scaling with vector tiles. This means the domain-range (ie. min & max) of a value is determined by querying the min-max of the underlying data in Elasticsearch, and not by only getting the min-max of the features on screen.
top-term aggregation is disabled
Top-terms agg is not supported by the vector tile search API of Elasticsearch.
too many features outline
This PR introduces a orange dotted outline of the bounding-box of the features int he tile. This is only used if the number of features exceeds the maximum allowed number of features per tile.
e.g.: zoomed out, cannot show all features at this scale level. Users would need to filter or zoom-in further to see all data.
Field formatters are not applied on map labels
When using vector tiles, field formatters of the data view are not applied for labeling on the map.