// Print a distance in meters between 2 points on the Earth surface. // Coordinates of points are given as latitude and longtitude in degrees. // #include #include #include "R3Graph.h" using namespace std; using namespace R3Graph; R3Vector radiusVector(double lat, double lon); double EARTH_RADIUS = 6378000.0; const double PI = 3.14159265358979323846; int main() { while (true) { double lat0, lon0; double lat1, lon1; cout << "Enter coordinates of 2 points on the Earth surface:" << endl; cin >> lat0 >> lon0 >> lat1 >> lon1; if (!cin.good()) break; R3Vector v0 = radiusVector(lat0, lon0); R3Vector v1 = radiusVector(lat1, lon1); double alpha = v0.angle(v1); // atan2(y, x) double dist = alpha*EARTH_RADIUS; cout << "Distance = " << dist <