Перейти к содержимому
Меню
Arduino Market
Arduino Market

Вычисление расстояния между двумя GPS точками.

Опубликовано 24/07/201224/07/2012

Возможно когда будите использовать 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;
}

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Категория

  • Новости
  • GPS
  • Проекты с GPS
  • Книги по Arduino
©2025 Arduino Market | На платформе SuperbThemes