#include "../pch/pch.h" #include "CLewaimaiDistance.h" #define PI 3.141592657 #define EARTH_RADIUS 6378137 CLewaimaiDistance::CLewaimaiDistance() { } CLewaimaiDistance::~CLewaimaiDistance() { } double CLewaimaiDistance::getDistance(CLewaimaiPos pos1, CLewaimaiPos pos2) { double Rad = PI / 180.0; double radlat1 = pos1.lat * Rad; double radlat2 = pos2.lat * Rad; double a = radlat1 - radlat2; double b = (pos1.lng - pos2.lng) * Rad; double s = 2 * asin(sqrt(pow(sin(a / 2), 2) + cos(radlat1)*cos(radlat2)*pow(sin(b / 2), 2))); s = s * EARTH_RADIUS; s = round(s * 10000) / 10000; return s; }