Adding the following envelope to an index:

```
DELETE shape

PUT shape/
{
  "mappings": {
    "properties": {
      "geoLocationBox": {"type": "geo_shape"}
    }
  }
}

POST shape/_doc
{
  "geoLocationBox": {
    "type": "envelope",
    "coordinates": [
      [
        10.0,
        10.0
      ],
      [
        -10.0,
        -10.0
      ]
    ]
  }
}
```

If we try to plot it using vector tiles it gives the wrong bounding box as it should cross the dateline:

<img width="327" alt="image" src="https://user-images.githubusercontent.com/29038686/197124298-23855b83-91d0-4a92-a4d5-3ac728a917ef.png">

x-pack/plugin/vector-tile/src/main/java/org/elasticsearch/xpack/vectortile/feature/FeatureFactory.java
public org.locationtech.jts.geom.Geometry visit(MultiLine multiLine) throws RuntimeException {
            final LineString[] lineStrings = new LineString[multiLine.size()];
            for (int i = 0; i < multiLine.size(); i++) {
                lineStrings[i] = buildLine(multiLine.get(i));
            }
            return geomFactory.createMultiLineString(lineStrings);
        }
        private LineString buildLine(Line line) {
            final Coordinate[] coordinates = new Coordinate[line.length()];
            for (int i = 0; i < line.length(); i++) {
                final double x = SphericalMercatorUtils.lonToSphericalMercator(line.getX(i));
                final double y = SphericalMercatorUtils.latToSphericalMercator(line.getY(i));
                coordinates[i] = new Coordinate(x, y);
            }
            return geomFactory.createLineString(coordinates);
        }
        @Override
        public org.locationtech.jts.geom.Geometry visit(Polygon polygon) throws RuntimeException {
            return buildPolygon(polygon);
        }
        @Override
        public org.locationtech.jts.geom.Geometry visit(MultiPolygon multiPolygon) throws RuntimeException {
            final org.locationtech.jts.geom.Polygon[] polygons = new org.locationtech.jts.geom.Polygon[multiPolygon.size()];
            for (int i = 0; i < multiPolygon.size(); i++) {
                polygons[i] = buildPolygon(multiPolygon.get(i));
            }
            return geomFactory.createMultiPolygon(polygons);
        }
        private org.locationtech.jts.geom.Polygon buildPolygon(Polygon polygon) {
            final org.locationtech.jts.geom.LinearRing outerShell = buildLinearRing(polygon.getPolygon());