Как рассчитать ошибку перекрестной трассы (GPS / Core Location) - PullRequest
2 голосов
/ 22 октября 2010

Кто-нибудь знает, как определить определение "Cross-Track Error"?

Для тех, кто незнаком: Вы едете по линии из пункта «А» в пункт «В».Находясь в пути, когда вы отклоняетесь от этой линии, расстояние от вашей текущей позиции до линии является ошибкой перекрестного отслеживания.

Теперь у меня есть простой алгоритм, который работает, используя базовую геометрию с широтой и долготойиз трех точек - проблема в том, что он не учитывает расчеты "большого круга" (т. е. фактическая долгота в метрах на градус варьируется в зависимости от вашей широты и не равна широте).

Другими словами - если вам известна формула «большого круга» для определения этого, пожалуйста, дайте мне знать, - но это не проблема прямой декартовой геометрии.

Ответы [ 4 ]

3 голосов
/ 03 августа 2011

Ответ, который вы ищете здесь:

http://www.movable -type.co.uk / scripts / latlong.html

(раздел «Крест»расстояние ")

2 голосов
/ 22 октября 2010

Бред

Я не уверен, какую модель эллипсоида вы используете, так как вы не говорите. Если вы не используете модель эллипсоида в своих текущих расчетах, вы можете найти это полезным:

http://www.movable -type.co.uk / скрипты / LatLong-vincenty.html

Алгоритм Винсенти точнее алгоритма Хаверсайна.

Если у вас есть точные расстояния для A-B, A-C и B-C, определить расстояние от C до линии A-B не составит труда. Что-то вроде двоичного поиска расстояний от точек на A-B до C, ища самое короткое значение.

Джеймс

1 голос
/ 22 октября 2010

Если вы имеете дело с широтой и долготой, то форумной темой, которую вы ищете, является формула "Haversine".Он учитывает кривизну земной поверхности.

http://en.wikipedia.org/wiki/Haversine_formula

Удачи.

0 голосов
/ 22 октября 2010

API CLLocation предоставляет

- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location

Который использует формулу (он не указывает, является ли это Haversine или Винсент или другой), который принимает во внимание кривизну земли. Это возвращает расстояние в метрах между двумя CLLocations, но не учитывает разницу в высоте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...