已知两点的经度、纬度,计算两点的距离
2010-07-29 10:36
671 查看
const double EARTH_RADIUS = 6378137;//地球半径 /// <summary> /// 计算由经纬度给出两点的距离 /// </summary> /// <param name="Lat1">点一纬度</param> /// <param name="Lon1">点一经度</param> /// <param name="Lat2">点二纬度</param> /// <param name="Lon2">点二经度</param> /// <returns>两点之间以海里为单位的距离</returns> public static double ComputeD(double Lat1, double Lon1, double Lat2, double Lon2) { if (Lat1 < -90 || Lat1 > 90) { MessageBox.Show("纬度值输入错误!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return -9999; } if (Lon1 < -180 || Lon1 > 180) { MessageBox.Show("经度值输入错误!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return -9999; } if (Lat2 < -90 || Lat2 > 90) { MessageBox.Show("纬度值输入错误!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return -9999; } if (Lon2 < -180 || Lon2 > 180) { MessageBox.Show("经度值输入错误!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return -9999; } double radLat1 = rad(Lat1); double radLat2 = rad(Lat2); double a = radLat1 - radLat2; double b = rad(Lon1) - rad(Lon2); double Dis = 2 * Math.Asin(Math.Sqrt(Math.Sin(a / 2) * Math.Sin(a / 2) + Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Sin(b / 2) * Math.Sin(b / 2))); Dis = Dis * EARTH_RADIUS; return Dis ;//米 }
相关文章推荐
- 已知两点的经度和纬度,计算两点间的距离(php,javascript)
- Object-c 根据经度纬度计算两点间的距离
- C# 根据经度纬度计算两点的距离
- Object-c 根据经度纬度计算两点间的距离
- C# 根据经度纬度计算两点的距离
- C# 根据经度纬度计算两点的距离
- C语言实验:已知地球上两点的经度和纬度求其球面距离
- [置顶] C语言实验题:已知地球上两点的经度和纬度求其球面距离
- SQL语句根据经度纬度求出两点间的距离排序
- 已知两点经纬度,计算两点间的距离
- 计算地球上两个坐标点(经度,纬度)之间距离sql函数
- 计算地球上两个坐标点(经度,纬度)之间距离sql函数
- 已知经纬度计算两点间距离
- 根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)
- 根据地球上两个地点的经度和纬度,如何获得这两点的距离?
- Go语言计算两个经度和纬度之间距离的方法
- 根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)
- 根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)
- 计算地球上两个坐标点(经度,纬度)之间距离sql函数
- 根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)