自己计算地图上的两点间的距离

double distance(double lat1, double lon1, double lat2, double lon2){
	double theta=lon1 - lon2;
	double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2))+ Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2))* Math.cos(deg2rad(theta));
	dist = Math.acos(dist);
	dist = rad2deg(dist);
	double miles = dist * 60 * 1.1515*1.609344;
	return miles;
}
 //将角度转换为弧度
 static double deg2rad(double degree){
	 return degree/180*Math.PI;
 }
//将弧度转换为角度
 static double rad2deg(double radian){
	 return radian * 180 / Math.PI;
 }

  

posted @ 2013-01-04 13:32  黑暗&独舞  阅读(242)  评论(0编辑  收藏  举报