Триангуляция GPS-координат - PullRequest
5 голосов
/ 25 февраля 2009

Скажем, у вас есть n GPS-координаты, как вы могли бы определить центральную точку GPS между ними?

Ответы [ 2 ]

9 голосов
/ 25 февраля 2009

В случае, если это поможет кому-либо сейчас или в будущем, вот алгоритм, который действителен даже для точек около полюсов (если он действителен вообще, то есть, если я не сделал глупую математическую ошибку;

  1. Преобразование координат широты / долготы в трехмерные декартовы координаты:

    x = cos(lat) * cos(lon)
    y = cos(lat) * sin(lon)
    z = sin(lat)
    
  2. Вычислите среднее значение x, среднее значение y и среднее значение z:

    x_avg = sum(x) / count(x)
    y_avg = sum(y) / count(y)
    z_avg = sum(z) / count(z)
    
  3. Преобразовать это направление обратно в широту и долготу:

    lat_avg = arctan(z_avg / sqrt(x_avg ** 2 + y_avg ** 2))
    lon_avg = arctan(y_avg / x_avg)
    
4 голосов
/ 25 февраля 2009

Зависит от того, что вы подразумеваете под центральной точкой GPS. Вы можете просто взять среднее значение по всем точкам, как предложил Стивен, но имейте в виду, что GPS-координаты не являются непрерывными - это может провалиться из-за несплошностей, таких как полюса.

В большинстве случаев вам необходимо преобразовать систему координат, в которой нет этой проблемы.

Вы также можете просматривать все ограниченные им точки, рассчитывать все расстояния до каждой точки GPS и минимизировать сумму расстояний до всех точек GPS. Для этого вам нужно изучить расчеты большого круга.

Кроме того, каждый GPS может иметь более высокую или более низкую степень неопределенности, вы должны принять это во внимание и соответствующим образом взвесить.

Что именно вы пытаетесь выяснить?

-Adam

...