码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 地图 通过经纬度计算两点间距离

时间:2015-06-04 13:18:45      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

- (double)calculateStart:(CLLocationCoordinate2D)start end:(CLLocationCoordinate2D)end {
    
    double meter = 0;
    
    double startLongitude = start.longitude;
    double startLatitude = start.latitude;
    double endLongitude = end.longitude;
    double endLatitude = end.latitude;
    
    double radLatitude1 = startLatitude * M_PI / 180.0;
    double radLatitude2 = endLatitude * M_PI / 180.0;
    double a = fabs(radLatitude1 - radLatitude2);
    double b = fabs(startLongitude * M_PI / 180.0 - endLongitude * M_PI / 180.0);
    
    double s = 2 * asin(sqrt(pow(sin(a/2),2) + cos(radLatitude1) * cos(radLatitude2) * pow(sin(b/2),2)));
    s = s * EARTH_RADIUS;
    
    meter = round(s * 10000) / 10000; //返回距离单位是米
    return meter;
}
//赤道半径
EARTH_RADIUS = 6378137;
//start 起点经纬度,数据格式 start = {lon:,lat:}
//end 终点定位度,数据格式 end = {lon:,lat:}

iOS 地图 通过经纬度计算两点间距离

标签:

原文地址:http://www.cnblogs.com/liuliuliu/p/4551379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!