根据经纬度坐标计算两点间几何距离

时间:2022-11-08 19:52:27

根据地球上两点间GPS经纬度坐标,计算两点间几何距离。

源代码如下:

注:传入的参数为ArcGis计算出的DOUBLE值,如果希望传入参数为度分秒就需要改造了。计算结果单位为米。经过我自己的验证,误差很小。

根据经纬度坐标计算两点间几何距离public class Distance
根据经纬度坐标计算两点间几何距离根据经纬度坐标计算两点间几何距离
{
根据经纬度坐标计算两点间几何距离
根据经纬度坐标计算两点间几何距离    
private static final double EARTH_RADIUS = 6378137;
根据经纬度坐标计算两点间几何距离    
private static double rad(double d)
根据经纬度坐标计算两点间几何距离根据经纬度坐标计算两点间几何距离    
{
根据经纬度坐标计算两点间几何距离       
return d * Math.PI / 180.0;
根据经纬度坐标计算两点间几何距离    }

根据经纬度坐标计算两点间几何距离    
根据经纬度坐标计算两点间几何距离根据经纬度坐标计算两点间几何距离    
/**
根据经纬度坐标计算两点间几何距离     * 根据两点间经纬度坐标(double值),计算两点间距离,单位为米
根据经纬度坐标计算两点间几何距离     * 
@param lng1
根据经纬度坐标计算两点间几何距离     * 
@param lat1
根据经纬度坐标计算两点间几何距离     * 
@param lng2
根据经纬度坐标计算两点间几何距离     * 
@param lat2
根据经纬度坐标计算两点间几何距离     * 
@return
根据经纬度坐标计算两点间几何距离     
*/

根据经纬度坐标计算两点间几何距离    
public static double GetDistance(double lng1, double lat1, double lng2, double lat2)
根据经纬度坐标计算两点间几何距离根据经纬度坐标计算两点间几何距离    
{
根据经纬度坐标计算两点间几何距离       
double radLat1 = rad(lat1);
根据经纬度坐标计算两点间几何距离       
double radLat2 = rad(lat2);
根据经纬度坐标计算两点间几何距离       
double a = radLat1 - radLat2;
根据经纬度坐标计算两点间几何距离       
double b = rad(lng1) - rad(lng2);
根据经纬度坐标计算两点间几何距离       
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2+ 
根据经纬度坐标计算两点间几何距离        Math.cos(radLat1)
*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
根据经纬度坐标计算两点间几何距离       s 
= s * EARTH_RADIUS;
根据经纬度坐标计算两点间几何距离       s 
= Math.round(s * 10000/ 10000;
根据经纬度坐标计算两点间几何距离       
return s;
根据经纬度坐标计算两点间几何距离    }

根据经纬度坐标计算两点间几何距离    
根据经纬度坐标计算两点间几何距离    
根据经纬度坐标计算两点间几何距离根据经纬度坐标计算两点间几何距离    
/**
根据经纬度坐标计算两点间几何距离     * 
@param args
根据经纬度坐标计算两点间几何距离     
*/

根据经纬度坐标计算两点间几何距离    
public static void main(String[] args)
根据经纬度坐标计算两点间几何距离根据经纬度坐标计算两点间几何距离    
{
根据经纬度坐标计算两点间几何距离    
// TODO 自动生成方法存根
根据经纬度坐标计算两点间几何距离
        double distance = GetDistance(121.491909,31.233234,121.411994,31.206134);
根据经纬度坐标计算两点间几何距离        System.out.println(
"Distance is:"+distance);
根据经纬度坐标计算两点间几何距离    }

根据经纬度坐标计算两点间几何距离
根据经纬度坐标计算两点间几何距离}