Триангуляция координат GPS

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

Ответов (2)

Решение

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

  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)
    

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

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

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

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

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

-Адам