Июл 242012
 

Возможно когда будите использовать GPS модуль Вам потребуется вычислить расстояние между двумя координатами. Приводим пример функции для вычисления расстояния между GPS координатами.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define EARTH_RADIUS 6372795

double TheDist (double fA, double sA, double fB, double sB);

// #define M_PI 3.1415926535898

int main()
{
  printf(«Метры: %f\r\n «,TheDist( 55.75, 37.617 , 54.188, 37.595 ));
  return 0;
}

double TheDist (double fA, double sA, double fB, double sB) {

  double lat1 = fA * M_PI / 180;
  double lat2 = fB * M_PI / 180;
  double double1 = sA * M_PI / 180;
  double double2 = sB * M_PI / 180;

  double cl1 = cos(lat1);
  double cl2 = cos(lat2);
  double sl1 = sin(lat1);
  double sl2 = sin(lat2);
  double delta = double2 — double1;
  double cdelta = cos(delta);
  double sdelta = sin(delta);

  double y = sqrt(pow(cl2 * sdelta, 2) + pow(cl1 * sl2 — sl1 * cl2 * cdelta, 2));
  double x = sl1 * sl2 + cl1 * cl2 * cdelta;

  double ad = atan2(y, x);
  double dist = ad * EARTH_RADIUS;

  return dist;
}

 Posted by at 12:48

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.