Триангулирование координат GPS

if (message.isMentioned(message.mentions.users.first())) решил это для меня.

5
задан Malachi 4 February 2013 в 15:13
поделиться

2 ответа

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

  1. Преобразуйте координаты широты/долготы в 3D Декартовы координаты:

    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)
    
10
ответ дан 18 December 2019 в 13:19
поделиться

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

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

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

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

Что точно Вы пытаетесь узнать?

- Adam

4
ответ дан 18 December 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: