根据经纬度计算距离的公式
2011-01-18 23:06
351 查看
private const double EARTH_RADIUS = 6378.137;
private static double rad(double d)
{
return d * Math.PI / 180.0;
}
public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
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;
}
方便的改成sql语句
假设计算118.041 36.793与数据库内坐标点的距离
mysql> select 6378137*2*asin(Sqrt(power(sin((36.793-domlat)*pi()/360),2) + Cos(36.793*pi()/180)*Cos(domlat*pi()/180)*power(sin((118.041-domlon)*pi()/360),2))) as distance,domip from dominfo order by distance;
精简一下啊
select 12756274*asin(Sqrt(power(sin((36.793-domlat)*0.008726646),2) + Cos(36.793*0.0174533)*Cos(domlat*0.0174533)*power(sin((118.041-domlon)*0.008726646),2))) as distance,domip from dominfo order by distance;
private static double rad(double d)
{
return d * Math.PI / 180.0;
}
public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
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;
}
方便的改成sql语句
假设计算118.041 36.793与数据库内坐标点的距离
mysql> select 6378137*2*asin(Sqrt(power(sin((36.793-domlat)*pi()/360),2) + Cos(36.793*pi()/180)*Cos(domlat*pi()/180)*power(sin((118.041-domlon)*pi()/360),2))) as distance,domip from dominfo order by distance;
精简一下啊
select 12756274*asin(Sqrt(power(sin((36.793-domlat)*0.008726646),2) + Cos(36.793*0.0174533)*Cos(domlat*0.0174533)*power(sin((118.041-domlon)*0.008726646),2))) as distance,domip from dominfo order by distance;
相关文章推荐
- python函数——根据经纬度计算距离公式的错误及修正
- 根据经纬度计算距离的公式、百度坐标转换成GPS坐标(PHP版)
- 根据经纬度计算距离的公式
- 根据经纬度计算地面两点间的距离-数学公式及推导
- 根据经纬度计算两点之间的距离的公式推导过程以及google.maps的测距函数
- 根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)
- PHP根据经纬度计算两点之间距离
- 根据经纬度计算两点球面距离
- 根据两点的经纬度计算其距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- Sql中根据经纬度计算两点的距离
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- 根据经纬度计算球面距离
- 根据经纬度计算距离
- 通过经纬度计算距离的公式 (2009-12-01 15:48)
- iOS根据2个经纬度计算距离
- 求通过经纬度计算地球表面任意两点间距离的公式
- js代码--根据经纬度计算距离