1.通过经纬度计算距离
public class CoordCommonUtil
{
/** 获得球面(地球)上两个点之间的距离(坐标可以为WGS84、GCJ02等任何一种坐标,但两个点的坐标类型必须相同)
* @param lon1 起点的经度
* @param lat1 起点的纬度
* @param lon2 终点的经度
* @param lat2 终点的纬度
* @return 两点之间的距离,单位是米
*/
public static int getDistance(double lon1,double lat1, double lon2,double lat2)
{
double radLat1 = Math.toRadians(lat1); //计算弧长(d * Math.PI / 180.0)
double radLat2 = Math.toRadians(lat2);
double a = radLat1 - radLat2;
double b = Math.toRadians(lon1) - Math.toRadians(lon2);
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 * 6378137.0; //取WGS84标准参考椭球中的地球长半径(单位:m)
//s = Math.round(s * 10000) / 10000;
return (int)Math.round(s);
}
}