### CI Link

https://gradle-enterprise.elastic.co/s/axidmlforgvci

### Repro line

./gradlew ':x-pack:plugin:spatial:internalClusterTest' --tests "org.elasticsearch.xpack.spatial.search.aggregations.metrics.CartesianCentroidIT.testMultiValuedField" \   -Dtests.seed=8668813C5163E0C8 \   -Dtests.locale=mt-MT \   -Dtests.timezone=Europe/Chisinau \   -Druntime.java=20

### Does it reproduce?

Yes

### Applicable branches

8.7

### Failure history

_No response_

### Failure excerpt

```
11:46:03 org.elasticsearch.xpack.spatial.search.aggregations.metrics.CartesianCentroidIT > testMultiValuedField FAILED
11:46:03     java.lang.AssertionError: Mismatching value for 'y' field of centroid
11:46:03     Expected: a numeric value within <2.0313534124233142E27> of <2.031197896205879E32>
11:46:03          but: <2.031353412423314E32> differed by <1.3520268331099276E28> more than delta <2.0313534124233142E27>
11:46:03         at __randomizedtesting.SeedInfo.seed([8668813C5163E0C8:C2B7DE705B53E615]:0)
11:46:03         at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:18)
11:46:03         at org.junit.Assert.assertThat(Assert.java:956)
11:46:03         at org.elasticsearch.search.aggregations.metrics.CentroidAggregationTestBase.assertSameCentroid(CentroidAggregationTestBase.java:160)
11:46:03         at org.elasticsearch.search.aggregations.metrics.CentroidAggregationTestBase.testMultiValuedField(CentroidAggregationTestBase.java:128)
11:46:03         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
11:46:03         at java.base/java.lang.reflect.Method.invoke(Method.java:578)
11:46:03         at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758)
11:46:03         at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
11:46:03         at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:982)
11:46:03         at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:996)
11:46:03         at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
11:46:03         at org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48)
11:46:03         at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
11:46:03         at org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
11:46:03         at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
11:46:03         at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
11:46:03         at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
11:46:03         at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
11:46:03         at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
11:46:03         at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
11:46:03         at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
11:46:03         at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:840)
11:46:03         at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:891)
11:46:03         at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:902)
11:46:03         at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
11:46:03         at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
11:46:03         at org.apache.lucene.tests.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:38)
11:46:03         at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
11:46:03         at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
11:46:03         at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
11:46:03         at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
11:46:03         at org.apache.lucene.tests.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
11:46:03         at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
11:46:03         at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
11:46:03         at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
11:46:03         at org.apache.lucene.tests.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:47)
11:46:03         at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
11:46:03         at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
11:46:03         at com.carrotsearch.randomizedtesting.ThreadLeakControl.lambda$forkTimeoutingTask$0(ThreadLeakControl.java:850)
11:46:03         at java.base/java.lang.Thread.run(Thread.java:1623)
```
x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/aggregations/metrics/CartesianCentroidIT.java
public class CartesianCentroidIT extends CentroidAggregationTestBase {
    protected String aggName() {
        return "cartesianCentroid";
    }
    @Override
    protected Collection<Class<? extends Plugin>> nodePlugins() {
        return Collections.singleton(LocalStateSpatialPlugin.class);
    }
    @Override
    protected CartesianCentroidAggregationBuilder centroidAgg(String name) {
        return new CartesianCentroidAggregationBuilder(name);
    }
    @Override
    protected String fieldTypeName() {
        return "point";
    }
    @Override