有没有能帮忙解决这个问题
java本地代码运行,两个项目,这个后台管理系统添加一个数据到客户系统,然后客户系统拿到这个数据是没有问题,但是把jar包上传到服务器之后,添加一个数据,然后客户系统拿不到,一直提示请刷新,报了一个520
报错
开启日志,多打印看看代码走那块出问题了
/** 地球半径 **/
private static final double R = 6371e3;
/** 180° **/
private static final DecimalFormat df = new DecimalFormat("0.000000");
/**
* 根据一点的坐标与距离,以及方向,计算另外一点的位置
* @param angle 角度,从正北顺时针方向开始计算
* @param startLong 起始点经度
* @param startLat 起始点纬度
* @param distance 距离,单位m
* @return
*/
public static String[] calLocationByDistanceAndLocationAndDirection(double angle, double startLong,double startLat, double distance){
String[] result = new String[2];
//将距离转换成经度的计算公式
double δ = distance/R;
// 转换为radian,否则结果会不正确
angle = Math.toRadians(angle);
startLong = Math.toRadians(startLong);
startLat = Math.toRadians(startLat);
double lat = Math.asin(Math.sin(startLat)*Math.cos(δ)+Math.cos(startLat)*Math.sin(δ)*Math.cos(angle));
double lon = startLong + Math.atan2(Math.sin(angle)*Math.sin(δ)*Math.cos(startLat),Math.cos(δ)-Math.sin(startLat)*Math.sin(lat));
// 转为正常的10进制经纬度
lon = Math.toDegrees(lon);
lat = Math.toDegrees(lat);
result[0] = df.format(lon);
result[1] = df.format(lat);
return result;
}
public static void main(String[] args) {
String[] result = calLocationByDistanceAndLocationAndDirection(0,119.010212,32.147982, 100);
String[] result2 = calLocationByDistanceAndLocationAndDirection(90,119.010212,32.147982, 100);
String[] result3 = calLocationByDistanceAndLocationAndDirection(180,119.010212,32.147982, 100);
System.out.print(result[0]+",");
System.out.println(result[1]);
System.out.print(result2[0]+",");
System.out.println(result2[1]);
System.out.print(result3[0]+",");
System.out.println(result3[1]);
}
这里当然有一些误差,但是因为此项目仅需要大概位置,所以仅需要做到这一步就可以了,如果需要十分精确的话可能需要现在平面坐标系中计算后再转换为经纬度坐标?这里先不做讨论,如果以后需要,再做补充。
如果文中存在错误,希望各位大佬斧正,感谢!