yangys
2024-04-02 1a77b1a7c072b136925d6d73c4d8f017ca016e3a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package com.qianwen.core.tool.metadata.types;
 
import com.alibaba.fastjson.JSON;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import com.qianwen.core.tool.utils.StringPool;
 
/* loaded from: blade-core-tool-9.3.0.0-SNAPSHOT.jar:org/springblade/core/tool/metadata/types/GeoShape.class */
public class GeoShape implements Serializable {
    private Type type;
    private List<Object> coordinates;
 
    public void setType(final Type type) {
        this.type = type;
    }
 
    public void setCoordinates(final List<Object> coordinates) {
        this.coordinates = coordinates;
    }
 
    public Type getType() {
        return this.type;
    }
 
    public List<Object> getCoordinates() {
        return this.coordinates;
    }
 
    /* loaded from: blade-core-tool-9.3.0.0-SNAPSHOT.jar:org/springblade/core/tool/metadata/types/GeoShape$Type.class */
    public enum Type {
        Point,
        MultiPoint,
        LineString,
        MultiLineString,
        Polygon,
        MultiPolygon,
        GeometryCollection;
 
        public static Type of(Object val) {
            Type[] values;
            for (Type value : values()) {
                if (value.name().equalsIgnoreCase(String.valueOf(val))) {
                    return value;
                }
            }
            throw new IllegalArgumentException("unsupported GeoShape type:" + val);
        }
 
        public List<Object> parseCoordinates(Object coordinates) {
            if (coordinates instanceof Collection) {
                return new ArrayList((Collection) coordinates);
            }
            if (coordinates instanceof String) {
                if (((String) coordinates).startsWith(StringPool.LEFT_SQ_BRACKET)) {
                    return JSON.parseArray(String.valueOf(coordinates));
                }
                return new ArrayList(Arrays.asList(((String) coordinates).split(StringPool.COMMA)));
            }
            throw new IllegalArgumentException("unsupported coordinates type :" + coordinates);
        }
    }
 
    public static GeoShape of(Object value) {
        if (value instanceof GeoShape) {
            return (GeoShape) value;
        }
        if (value instanceof GeoPoint) {
            return fromPoint((GeoPoint) value);
        }
        if ((value instanceof String) && ((String) value).startsWith(StringPool.LEFT_BRACE)) {
            value = JSON.parseObject(String.valueOf(value));
        }
        if (value instanceof Map) {
            return of((Map<String, Object>) value);
        }
        throw new IllegalArgumentException("unsupported GeoShape:" + value);
    }
 
    public static GeoShape of(Map<String, Object> map) {
        GeoShape shape = new GeoShape();
        shape.type = Type.of(map.get("type"));
        shape.coordinates = shape.type.parseCoordinates(map.get("coordinates"));
        return shape;
    }
 
    public static GeoShape fromPoint(GeoPoint point) {
        GeoShape shape = new GeoShape();
        shape.type = Type.Point;
        shape.coordinates = new ArrayList(Arrays.asList(Double.valueOf(point.getLon()), Double.valueOf(point.getLat())));
        return shape;
    }
}