Setting Static aggs precision in maps vs tile_map?

Howdy,
I have been banging my head a little bit on a feature that exists in tile_map that I can not find a substitute in maps. In the tile_map, you could set the tile_map precision to a value between 1-12 (if you increased the value of "visualization:tileMap:maxPrecision").

In maps, this precision now appears to be associated with the zoom level with spatial resolution in zoom levels, and within kibana::maps we can only have an aggr precision associated with a level either 2, 3, or 4, the zoom level (course, fine, and finest respectively).

Is there a way to set this precision of the aggr geotile_grid as static? I have messed with the GET params, but so far I have not found the right parameters to set the geotile_grid precision as static (if that is the parameters I should even set.)

From the Elasticsearch geo grid aggregation request, it appears I want to set the precision as such:
"aggs": {"grid": {"geotile_grid": {"field": "sgeohash","precision": 18 ....
but dang if I can't figure out how to set this in the Kibana UI, GET, or wherever, other than it appears I can set it in es_geo_grid_source.js or a few other places if I want to customize my Kibana install... but I want to share my visualizations with other researchers using standard Kibana distributions.

Map I want to control geotile_grid precision on:
http://cfsr.bse.vt.edu:5601/app/maps#/map/8f9fe490-6a50-11ea-b99c-d3a3e990eabf?_g=(filters:!(),refreshInterval:(pause:!f,value:0),time:(from:'2019-05-18T12:56:19.973Z',to:'2019-05-30T21:03:05.909Z'))&_a=(filters:!(),query:(language:kuery,query:''))

TileMap with desired static geotile_grid precision:
http://cfsr.bse.vt.edu:5601/app/kibana#/visualize/edit/22d20a40-73ca-11ea-9c21-0bde465d81a9?_g=(refreshInterval:(pause:!t,value:0),time:(from:'2019-05-22T12:59:55.112Z',to:'2019-05-31T08:28:15.872Z'))&_a=(filters:!(),linked:!f,query:(language:lucene,query:''),uiState:(mapCenter:!(38.9524506783424,-77.73859262466432),mapZoom:10),vis:(aggs:!((enabled:!t,id:'1',params:(field:RSSI),schema:metric,type:cardinality),(enabled:!t,id:'2',params:(autoPrecision:!f,field:sgeohash,isFilteredByCollar:!t,mapBounds:(bottom_right:(lat:38.9494,lon:-77.73462),top_left:(lat:38.95561,lon:-77.74284)),mapCenter:(lat:38.952679797537144,lon:-77.73818668909371),mapZoom:16,precision:10,useGeocentroid:!t),schema:segment,type:geohash_grid)),params:(addTooltip:!t,colorSchema:'Yellow%20to%20Red',dimensions:(geocentroid:(accessor:3,aggType:geo_centroid,format:(id:string,params:(parsedUrl:(basePath:'',origin:'http:%2F%2Fcfsr.bse.vt.edu:5601',pathname:%2Fapp%2Fkibana))),label:'Geo%20Centroid',params:()),geohash:(accessor:1,aggType:geohash_grid,format:(id:string,params:(parsedUrl:(basePath:'',origin:'http:%2F%2Fcfsr.bse.vt.edu:5601',pathname:%2Fapp%2Fkibana))),label:geohash_grid,params:(precision:7,useGeocentroid:!t)),metric:(accessor:2,aggType:cardinality,format:(id:number),label:'Unique%20count%20of%20RSSI',params:())),heatClusterSize:1,isDesaturated:!t,legendPosition:bottomright,mapCenter:!(0,0),mapType:'Shaded%20Geohash%20Grid',mapZoom:16),title:TileMap1,type:tile_map))

As you already guessed, Elastic Maps sets the precision as a value based in the current zoom level, where the coarse, fine, finest means current zoom + [3|4|5]. I don't think there's a way to override that formula, but maybe @thomasneirynck can confirm. We are actively working for feature parity with the old visualizations so we may need to look into this.

We would greatly appreciate if you could explain the bussiness reason for aiming a manual grid precision, given that it can easily hit the maximum number of bucket aggregations if you zoom out on a geographically large dataset.

Thanks Jorge,
So, these params can no longer be read from the GET? I was looking for what can and can't be set in the GET params as there appear to be some portions of those params that are still used.

Having the dynamic zoom is nice for data exploration, and I might add a field in there to allow entry of other options besides the coded [3,4,5], but for analysis delivery and presentation, the resulting graphic often needs to be repeatable, so being able to capture the specific settings, or lock them in.

Historically the precision could be set in the GET submitted params, and links to the static maps with these parameters could be copied/distributed. That is indeed a valuable feature to have in Maps.

thanks @drfuka for the suggestion.

This setting is not made explicit in Maps mainly because we were experiencing users setting the precision too high, resulting in Maps exceeding the bucket limit on the ES-side (e.g. when zoomed out). This would not much be an issue with sparsely distributed data, but was an issue with more evenly distributed datasets that covered a large area.

To introduce this again in Maps, could you create an ER in the kibana repo on github? Looking at your link (and thanks for that!), it does seem your use-case falls into the more "sparsely distributed" camp.

Note that improving the overall scalability of dealing with large data is a longer term project in Maps. We're looking at introducing vector-tiling support (https://github.com/elastic/kibana/issues/58519), both for gridded aggs as well as individual documents. After some POCs, we expect vector tiling will allow Maps to display grid-aggs at very fine resolution. (cc @nickpeihl)

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.