parent
ada630b7cb
commit
a28cbf77be
@ -0,0 +1,38 @@ |
||||
package com.hai.common.utils; |
||||
|
||||
/** |
||||
* @Auther: 胡锐 |
||||
* @Description: |
||||
* @Date: 2021/4/1 20:32 |
||||
*/ |
||||
public class CoordCommonUtil { |
||||
|
||||
|
||||
private static final double EARTH_RADIUS = 6371000; // 平均半径,单位:m;不是赤道半径。赤道为6378左右
|
||||
|
||||
/** |
||||
* 获得球面(地球)上两个点之间的距离(坐标可以为WGS84、GCJ02等任何一种坐标,但两个点的坐标类型必须相同) |
||||
* |
||||
* @param lon1 起点的经度 |
||||
* @param lat1 起点的纬度 |
||||
* @param lon2 终点的经度 |
||||
* @param lat2 终点的纬度 |
||||
* @return 两点之间的距离,单位是米 |
||||
*/ |
||||
public static double getDistance(Double lat1,Double lng1,Double lat2,Double lng2) { |
||||
// 经纬度(角度)转弧度。弧度用作参数,以调用Math.cos和Math.sin
|
||||
double radiansAX = Math.toRadians(lng1); // A经弧度
|
||||
double radiansAY = Math.toRadians(lat1); // A纬弧度
|
||||
double radiansBX = Math.toRadians(lng2); // B经弧度
|
||||
double radiansBY = Math.toRadians(lat2); // B纬弧度
|
||||
|
||||
// 公式中“cosβ1cosβ2cos(α1-α2)+sinβ1sinβ2”的部分,得到∠AOB的cos值
|
||||
double cos = Math.cos(radiansAY) * Math.cos(radiansBY) * Math.cos(radiansAX - radiansBX) |
||||
+ Math.sin(radiansAY) * Math.sin(radiansBY); |
||||
// System.out.println("cos = " + cos); // 值域[-1,1]
|
||||
double acos = Math.acos(cos); // 反余弦值
|
||||
// System.out.println("acos = " + acos); // 值域[0,π]
|
||||
// System.out.println("∠AOB = " + Math.toDegrees(acos)); // 球心角 值域[0,180]
|
||||
return EARTH_RADIUS * acos; // 最终结果附上原文出处链接及本声明。
|
||||
} |
||||
} |
@ -0,0 +1,20 @@ |
||||
package com.hai.model; |
||||
|
||||
/** |
||||
* @Auther: 胡锐 |
||||
* @Description: |
||||
* @Date: 2021/4/1 23:37 |
||||
*/ |
||||
public class UserModel { |
||||
|
||||
// 未使用卡卷数量
|
||||
private Integer unusedCouponNum; |
||||
|
||||
public Integer getUnusedCouponNum() { |
||||
return unusedCouponNum; |
||||
} |
||||
|
||||
public void setUnusedCouponNum(Integer unusedCouponNum) { |
||||
this.unusedCouponNum = unusedCouponNum; |
||||
} |
||||
} |
Loading…
Reference in new issue