package com.qaup.common.constant;

/**
 * 地理计算相关常量
 * 
 * @author qaup
 */
public class GeoConstants {
    
    /**
     * 地球半径（米）
     * 使用WGS84椭球体的赤道半径
     */
    public static final double EARTH_RADIUS_METERS = 6378137.0;
    
    /**
     * 地球半径（千米）
     */
    public static final double EARTH_RADIUS_KM = 6378.137;
    
    /**
     * WGS84椭球体赤道半径（米）
     * 用于高精度计算
     */
    public static final double WGS84_EQUATORIAL_RADIUS = 6378137.0;
    
    /**
     * WGS84椭球体极半径（米）
     */
    public static final double WGS84_POLAR_RADIUS = 6356752.314245;
    
    /**
     * 度到米的近似转换系数（在赤道附近）
     * 1度经度或纬度约等于111320米
     */
    public static final double DEGREE_TO_METER = 111320.0;
    
    /**
     * 米到度的近似转换系数
     */
    public static final double METER_TO_DEGREE = 1.0 / DEGREE_TO_METER;
    
    /**
     * 米每秒到公里每小时的转换系数
     */
    public static final double MPS_TO_KPH = 3.6;
    
    /**
     * 公里每小时到米每秒的转换系数
     */
    public static final double KPH_TO_MPS = 1.0 / MPS_TO_KPH;
    
    /**
     * WGS84坐标系SRID
     */
    public static final int WGS84_SRID = 4326;
    
    /**
     * 默认坐标精度（小数位数）
     */
    public static final int DEFAULT_COORDINATE_PRECISION = 6;
    
    /**
     * 距离计算精度（小数位数）
     */
    public static final int DISTANCE_PRECISION = 2;
    
    /**
     * 速度计算精度（小数位数）
     */
    public static final int SPEED_PRECISION = 2;
    
    /**
     * 方向计算精度（小数位数）
     */
    public static final int DIRECTION_PRECISION = 2;
}
