两点之间的距离

+(double)distanceBetweenOrderBy:(double) latitude1 :(double) longitude1 :(double) latitude2 :(double) longitude2{
    
    double PI = 3.141592653589793;
    
    double radlat1 = (PI * latitude1 / 180);
    double radlat2 = (PI * latitude2 / 180);
    double theta = (longitude1 - longitude2);
    double radtheta = (PI * theta / 180);
    double dist =  sin(radlat1)*sin(radlat2) + cos(radlat1)*cos(radlat2)*cos(radtheta);
    
    if (dist > 1) {
        dist = 1;
    }
    dist = acos(dist);
    dist = dist * 180 / PI;
    dist = dist * 60 * 1.1515;
    // km
    dist = dist * 1.609344;
    return dist;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。