package com.sikey.wa04.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 坐标类型
 *
 * @author luoyangwei
 */
@Getter
@AllArgsConstructor
public enum CoordinateType {

    /**
     * 地球坐标系
     * <br/>
     * 常见于 GPS 设备，Google 地图等国际标准的坐标体系
     */
    WGS84(1),

    /**
     * 火星坐标系
     * <br/>
     * 中国国内使用的被强制加密后的坐标体系，高德坐标就属于该种坐标体系
     */
    GCJ02(2),

    /**
     * 百度坐标系
     * <br/>
     * 百度地图所使用的坐标体系，是在火星坐标系的基础上又进行了一次加密处理
     * <br/>
     * <dl>
     *     <dt>Tips:</dt>
     *     <dd>百度的坐标体系，没有进行详细测试过，不保证准确</dd>
     * </dl>
     */
    BD09(3);

    private final Integer type;

    /**
     * 根据值获取枚举
     *
     * @param value 值
     * @return 枚举
     */
    public static CoordinateType valueOf(Integer value) {
        for (CoordinateType type : values()) {
            if (type.type.equals(value)) {
                return type;
            }
        }
        throw new RuntimeException("Unknown coordinate type: " + value);
    }
}
