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