![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Расстояние по GPS [D6, WinXP]
DimonS © (2006-07-28 07:44:00)Добрый день всем.
Тут возникла такая проблема. Есть БД координат нахождения автомобиля, определяемых с помощью спутниковой системы GPS. Типа такого формата:
N E
50,3203964233398 130,269302368164
50,3205871582031 130,268814086914
Необходимо определить расстояние между соседними отметками (координатами).
Кто сталкивался с такой проблемой? Как вообще это делается, есть ли какие формулы и т. д?
PS. Это нужно для определения пробега автомобиля за определенное время, по Mapper_Player (прилагаемая программа) довольно долго и неудобно...
tButton (2006-07-31 09:07:00) [1]
> Джо © (28.07.06 20:31) [5]
ну пользовались мы малясь GPSкой
и координаты считали при этом без поправки за кривизну земли
почти как в четвёртом посте
S := Sqrt(sqr(N2-N1)+sqr(E2-E1))
только нужно по-хорошему добавить ещё
S := Sqrt(sqr(N2-N1)+sqr(E2-E1) +sqr(H2-H1))
ПыСы
а если точки беруть раз в секунду-две
то на кривизну вообще можно забить
DimonS (2006-07-31 08:44:00) [2]
> Джо © (28.07.06 07:53) [1]
Спасибо за сцылку, в примере в Екселе отличная формула, точность ок 200-300 метров на 1000 км, вполне устраивает! :)
DimonS (2006-07-31 02:08:00) [3]
> TUser © (30.07.06 17:24) [7]
> Нет и не может быть такой формулы. Я имею в виду - разумной
> и пригодной для использования.
Странно, но ведь поставляемая с системой GPS программа Mapper_Player каким-то способом высчитывает расстояние.
Точки берутся раз в несколько секунд, очень часто, за 12 часов - 900-2000 точек. Естесственно, расстояние складывается из отрезков прямой линии. Вот и нужна формула для определения длины этой линии по географическим координатам.
> Джо © (28.07.06 07:53) [1]
Интересная статейка, буду пробовать считать по ней.
TUser (2006-07-30 17:24:00) [4]Нет и не может быть такой формулы. Я имею в виду - разумной и пригодной для использования. Земля - не шар, и даже не трехосный элипсоид Красовского. Ведь есть горы, ущелья и пр. А если расстояние по дорогам считать - то вообще ерунда.
Хотя, в предположении что ...., конечно есть методы высчитывания.
PEAKTOP (2006-07-29 14:45:00) [5]
> ***(H@kker)*** © (28.07.06 20:19) [4]
> S := Sqrt(sqr(N2-N1)+sqr(E2-E1))
Она подходит, если автомобиль движеться по идеально-ровной поверхности и нигде не сворачивает, разворачивается и т.д.....
Джо (2006-07-28 20:31:00) [6]> S := Sqrt(sqr(N2-N1)+sqr(E2-E1))
Это, если не ошибаюсь, для прямоугольных координат, а в сабже — географические.
***(H@kker)*** (2006-07-28 20:19:00) [7]Я согласен с StriderMan, точки действительно надо брать очень часто, но тогда расстояние пройденное машиной будет обычная прямая и никаких формул для определения расстояния по сфере не нужно! Это так, к сведению.
А формулу можно использовать следующую:
S := Sqrt(sqr(N2-N1)+sqr(E2-E1))
P.S. Для таких случаев существуют справочники по физике и математике!:-)
StriderMan (2006-07-28 14:50:00) [8]
> PS. Это нужно для определения пробега автомобиля за определенное
> время,
автомобиль не будет ехать по прямой между этими точками, поэтому точки надо брать очень часто
Jeer (2006-07-28 10:00:00) [9]http://hea.iki.rssi.ru/SXG/SDC/util/cgi-bin/c_dist.htm
Джо (2006-07-28 07:53:00) [10]Тут вот где-то должна быть формула вычисления расстояния на сфере (принимая форму Земли за сферу, что, наверное, для Вашей задачи вполне подойдет): http://gis-lab.info/qa/great-circles.html.Сам, честно говоря, уже формул не помню, ссылка случайно оказалась под рукой.