Перемещение позиции GPS на определенное расстояние (в метрах) в известном направлении - PullRequest
5 голосов
/ 09 апреля 2011

У меня есть некоторые данные GPS, взятые с устройства. Что мне нужно сделать, так это «переместить» данные «влево», скажем, на 1-5 метров. Я знаю, как сделать движущуюся часть, единственная проблема в том, что перемещение не так точно, как мне бы хотелось.

Что я сейчас делаю:

  • Я беру GPS-координаты (широта, долгота, пары)
  • Я конвертирую их, используя Plate Carrée преобразование.
  • Я масштабирую результирующие координаты до продольного расстояния (расстояние по x) и широтного расстояния (расстояние по y) - представьте, что все данные выборки GPS находятся внутри прямоугольника, ограниченного максимальной и минимальной широтой / долготой. Я вычисляю эти расстояния, используя формулу для Великого окружного расстояния между крайними значениями для долготы и широты.
  • Я перемещаю точки x метров в нужном направлении
  • Я конвертирую обратно в координаты GPS

У меня нет той точности, которую я хочу. Например, перемещение влево на 3 метра означает менее 3 метров (около 1,8 м - возможно, 2).

Каковы известные решения для таких вещей? Мне нужно решение, которое отклоняется максимум на 0,2-0,5 метра от реальной точки (а не 1,2, как в текущем случае).

ПОЗЖЕ: Этот подход хорош? Под этим подразумевается преобразование координат GPS в координаты плоскости и обратно в GPS. Есть ли другой способ?

LATER2: Вероятно, будет использован подход преобразования в конформную карту. В случае небольшого прямоугольника, и поскольку на полюсах нет дорог, вероятно, будет использоваться Mercator. Мнения?

Спасибо

Юлиан

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

1 Ответ

1 голос
/ 09 апреля 2011

В вашем решении есть две проблемы:

  • преобразование карри пластины не является конформным (то есть углы не сохраняются)
  • вы не можете измерить расстояния вдоль широты или долготы таким образом, так как это не большие круги (приблизительно вы отклонены на коэффициент cos (широта) для вашего x).

В маленьких прямоугольниках вы можете предположить, что lon / lat можно линейно сопоставить с парами x / y, но вы должны иметь в виду, что «квадрат» в lon / lat отображается в прямоугольник с соотношением сторон приблизительно cos (lat ) /1.

...