Hello,
What is the precision of the floats for the coordinates in shapes, like Polygon? We tried to store a polygon without intersections with coordinates having 6 decimal digits but we got "Unable to Tessellate shape" error:
{'timestamp': '2021-09-27T14:50:46.427812Z', 'status': 400, 'error': 'Bad Request', 'message': '{"hint":"Ensure that this is shape has no self-intersections. If it has, split it into several sub-shapes in such a way that no self-intersections remain.","reason":"Unable to Tessellate shape [[386.41562, 565.6094] [513.0249, 538.96094] [619.57166, 520.6353] [767.19977, 506.289] [907.88605, 497.9589] [1099.2129, 498.9013] [1195.2057, 507.0456] [1203.4454, 505.5837] [1203.573, 501.9473] [1203.5731, 501.94464] [1190.4535, 500.9026] [1190.2885, 504.78632] [1139.4575, 500.21658] [1139.3555, 494.29102] [1124.5372, 493.16135] [1124.67, 496.8161] [1121.9475, 496.69806] [1122.1187, 492.65085] [1101.5104, 491.71823] [1101.7128, 495.61987] [1098.6561, 495.61987] [1098.7572, 491.29382] [974.66943, 489.19507] [974.6986, 490.45502] [971.79803, 490.76035] [971.7731, 488.87952] [921.2863, 489.2724] [921.4196, 493.3556] [918.3664, 493.3556] [918.1993, 489.29642] [903.6128, 489.40994] [903.54694, 490.06866] [885.6189, 489.96793] [885.6299, 489.5499] [746.0154, 496.31168] [745.86743, 498.2444] [746.6732, 506.30194] [726.32794, 508.11487] [725.67017, 500.22217] [706.9845, 501.5434] [707.3927, 506.30194] [704.774, 506.50336] [704.41, 501.72543] [608.293, 512.5985] [520.063, 528.71356] [500.45, 531.9685] [501.85992, 540.11456] [499.56998, 540.5725] [498.18433, 532.60504] [463.6745, 542.30023] [463.94565, 543.78156] [459.16125, 545.64215] [458.83234, 543.6606] [405.88757, 558.5349] [388.8988, 564.70245] [388.53156, 564.83575] [386.37985, 565.61694] [386.37982, 565.61694] [386.37982, 565.61694] [386.38135, 565.61664] [386.38135, 565.61664] [386.39346, 565.6141] [386.41562, 565.6094] ]. Possible malformed shape detected.","type":"illegal_argument_exception"}', 'type': 'ApiException'}
If you notice there's just 5 decimal digits there. The original data we send have 6 digits, and it's sometimes even wrongly rounded, like e.g. in the 3rd and 5th case below:
386.415622 -> 386.41562
513.024902 -> 513.0249
386.393477 -> 386.39346
565.614061 -> 565.6141
564.835771 -> 564.83575
I did try to find some info about Elastic and coordinates precision, but not much luck so far. Though looking at Shape field type | Elasticsearch Guide [7.15] | Elastic I see some examples for 6-digit precision (e.g. Point coordinates). Still it doesn't prove anything on how Elastic processes them.