通过两个经纬度点,算出航向.不墨迹,代码拿去就能用
import java.math.BigDecimal;
//计算航向角
public class Bearing {
/**
*
* @param lat_a 纬度1
* @param lng_a 经度1
* @param lat_b 纬度2
* @param lng_b 经度2
* @return
*/
public static double getAngle1(double lat_a, double lng_a, double lat_b, double lng_b) {
double y = Math.sin(lng_b-lng_a) * Math.cos(lat_b);
double x = Math.cos(lat_a)*Math.sin(lat_b) - Math.sin(lat_a)*Math.cos(lat_b)*Math.cos(lng_b-lng_a);
double bearing = Math.atan2(y, x);
bearing = Math.toDegrees(bearing);
if(bearing < 0){
bearing = bearing +360;
}
return bearing;
}
public static void main(String[] args) {
import java.math.BigDecimal;
//计算航向角
public class Bearing {
/**
*
* @param lat_a 纬度1
* @param lng_a 经度1
* @param lat_b 纬度2
* @param lng_b 经度2
* @return
*/
public static double getAngle1(double lat_a, double lng_a, double lat_b, double lng_b) {
double y = Math.sin(lng_b-lng_a) * Math.cos(lat_b);
double x = Math.cos(lat_a)*Math.sin(lat_b) - Math.sin(lat_a)*Math.cos(lat_b)*Math.cos(lng_b-lng_a);
double bearing = Math.atan2(y, x);
bearing = Math.toDegrees(bearing);
if(bearing < 0){
bearing = bearing +360;
}
return bearing;
}
public static void main(String[] args) {