工程实践

【magic-api】计算经纬度偏移指定距离后(米)的值

· 三面体

import cn.hutool.core.util.NumberUtil /** * * 计算经纬度偏移指定距离后(米)的值。 * * create 2023年6月7日13:35:40 by sanmianti * * 在北半球&东半球(中国所处区域) * offset[0] 是东北方向的偏移量,为正则向东偏

magic-api
import cn.hutool.core.util.NumberUtil

/**
 * 
 * 计算经纬度偏移指定距离后(米)的值。
 * 
 * create 2023年6月7日13:35:40 by sanmianti
 * 
 * 在北半球&东半球(中国所处区域)
 * offset[0]  是东北方向的偏移量,为正则向东偏移,为负则向西偏移。
 * offset[1] 是南北放心的偏移量,为正则向北偏移,为负则向南偏移。
 * coordinate[0]是经度,
 * coordinate[1]是纬度。
 *  
 * 算法 https://blog.csdn.net/Dust_Evc/article/details/102847870
 * 
 */

var getOffset = (coordinate, offset) => {
    var lonUnit = 0.00001141; //经度一米对应的偏移量
    var latUnit = 0.00000899; //纬度一米对应的偏移量
    return [
        NumberUtil.add(coordinate[0], NumberUtil.mul(Double.valueOf(lonUnit), Double.valueOf(offset[0]))),
        NumberUtil.add(coordinate[1], NumberUtil.mul(Double.valueOf(latUnit), Double.valueOf(offset[1])))
    ]

}
return getOffset([117.17, 39.11], [0, -3000])