 geo_point field does not support GeoJson which can be a PITA if your data is in such a format. Indexing it as a geo_shape is an option but very wasteful.
server/src/main/java/org/elasticsearch/common/geo/GeoUtils.java
}
    public static void normalizePoint(double[] lonLat) {
        normalizePoint(lonLat, true, true);
    }
    public static boolean needsNormalizeLat(double lat) {
        return lat > 90 || lat < -90;
    }
    public static boolean needsNormalizeLon(double lon) {
        return lon > 180 || lon < -180;
    }
    public static void normalizePoint(double[] lonLat, boolean normLon, boolean normLat) {
        assert lonLat != null && lonLat.length == 2;
        normLat = normLat && needsNormalizeLat(lonLat[1]);
        normLon = normLon && (needsNormalizeLon(lonLat[0]) || normLat);
        if (normLat) {
            lonLat[1] = centeredModulus(lonLat[1], 360);
            boolean shift = true;
            if (lonLat[1] < -90) {
                lonLat[1] = -180 - lonLat[1];
            } else if (lonLat[1] > 90) {
                lonLat[1] = 180 - lonLat[1];
            } else {
                
                shift = false;
            }
            if (shift) {
                if (normLon) {
                    lonLat[0] += 180;
                } else {