美文网首页
计算两个经纬度之间的距离

计算两个经纬度之间的距离

作者: Goldfish_jinyu | 来源:发表于2016-12-01 11:13 被阅读356次
//将角度转为弧度

+ (float)radians:(float)degrees{
    return (degrees*3.14159265)/180.0;
}
//根据经纬度换算出直线距离

+ (float)getDistance:(float)lat1 lng1:(float)lng1 lat2:(float)lat2 lng2:(float)lng2
{
    //地球半径
    int R = 6378137;
    //将角度转为弧度
    float radLat1 = [self radians:lat1];
    float radLat2 = [self radians:lat2];
    float radLng1 = [self radians:lng1];
    float radLng2 = [self radians:lng2];
    //结果
    float s = acos(cos(radLat1)*cos(radLat2)*cos(radLng1-radLng2)+sin(radLat1)*sin(radLat2))*R;
    //精度
    s = round(s* 10000)/10000;
    return  round(s);
}
+ (float)getDistance:(float)lat1 lng1:(float)lng1 lat2:(float)lat2 lng2:(float)lng2
调用此方法返回的便是根据经纬度计算出来的距离
判断是否开启定位
  if ([CLLocationManager locationServicesEnabled] &&

        ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorizedAlways

         || [CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorizedWhenInUse)) {
            //定位功能可用,开始定位
}

相关文章

网友评论

      本文标题:计算两个经纬度之间的距离

      本文链接:https://www.haomeiwen.com/subject/hesxmttx.html