| 12345678910111213141516171819202122232425262728293031 |
- #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;
- }
|