package com.haohui.util;

/**
 * 计算两个经纬度之间的距离的工具类
 * 
 * Feb 13, 2014
 * @author ZhihaoChen
 */
public class LatLng {
	private static double lngPerMeter = 1.E-005D;

	public double getLat(double _curLat, int _radius) {
		return _radius * lngPerMeter;
	}

	public double getLng(int _radius) {
		return _radius * lngPerMeter;
	}

	/**
	 * 计算两个经纬度之间的距离
	 * 
	 * @param _lng1
	 * @param _lat1
	 * @param _lng2
	 * @param _lat2
	 * @return
	 */
	public static double distance(double _lng1, double _lat1, double _lng2,
			double _lat2) {
		if ((_lng1 == 0.0D) || (_lat1 == 0.0D) || (_lng2 == 0.0D)
				|| (_lat2 == 0.0D)) {
			return 0.0D;
		}
		double rad_lat1 = Rad(_lat1);
		double rad_lat2 = Rad(_lat2);
		double a = rad_lat1 - rad_lat2;
		double b = Rad(_lng1) - Rad(_lng2);
		double s = 2.0D * Math.asin(Math.sqrt(Math
				.pow(Math.sin(a / 2.0D), 2.0D)
				+ Math.cos(rad_lat1)
				* Math.cos(rad_lat2)
				* Math.pow(Math.sin(b / 2.0D), 2.0D)));
		s *= 6378137.0D;
		s = Math.round(s * 10000.0D) / 10000L;
		return s;
	}

	private static double Rad(double _d) {
		return _d * 3.141592653589793D / 180.0D;
	}
	
}
最近下载更多
奔跑的酱油  LV1 2月29日
dasen2022  LV6 2022年4月27日
JoeJie  LV6 2020年9月4日
低调人  LV38 2020年3月24日
luohaipeng  LV23 2019年11月19日
呼延烨赫  LV3 2019年10月10日
sunlsy  LV11 2018年7月25日
vijayChen  LV16 2018年7月3日
wkc  LV21 2018年5月13日
爱给糖的叔叔  LV9 2018年4月12日
最近浏览更多
123456dswhdm  LV2 2022年9月1日
super_he  LV17 2022年5月13日
dasen2022  LV6 2022年4月27日
jdndbh  LV6 2021年12月10日
newbag  LV9 2021年8月9日
HelloWorld088 2021年4月19日
暂无贡献等级
Killah  LV9 2021年4月16日
1470299983 2021年2月13日
暂无贡献等级
小五12345  LV13 2021年1月4日
JoeJie  LV6 2020年9月4日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友