Если у меня есть ряд точек, таких как долгота и широта, как мне рассчитать центр всех этих точек?
Как найти центр нескольких географических точек?
Ответы (7)
Несколько человек ответили, что взяли среднее значение широты и долготы. Идея вроде бы правильная, но средства на сфере сложнее.
Представление широты/долготы является по существу искусственным и имеет разрывы (на полюсах и напротив нулевого меридиана, если вы не будете осторожны), поэтому принимая во внимание средства, они не кажутся (мне) вероятными иметь разумную геометрическую интерпретацию. . Я думаю, вам нужно сделать что-то вроде усреднения векторов в координатах с центром на земле, а затем нормализовать результат, чтобы вернуть его на сферу.
Я надеюсь, что кто-то с большим опытом в этих вопросах может прокомментировать более конкретно.
Не берите только средние значения.
Вы можете преобразовать в 3D-координаты, затем взять среднее значение (координат x, y и z), затем спроецировать его обратно на сферу и превратить обратно в широту/долготу.
На странице википедии, посвященной сферическим координатам, есть алгоритмы преобразования.
Во-первых, вам нужно определить, какой центр вас интересует. Возьмите эти два пункта:
A. .B
Центр легко, это на полпути между ними. Теперь добавьте третью точку:
A. C. .B
Находится ли центр по-прежнему на полпути между А и В или он смещается в сторону А из-за С? Так является ли центр точкой, ближайшей ко всем точкам, или только к точкам окружающего многоугольника?
Кроме того, поскольку вы имеете дело с долготой/широтой, точки находятся на поверхности сферы, поэтому расстояние между длинными 0 и длинными 90 градусами намного больше на широте 0, чем на широте 45 градусов.
Вероятно, вы ищете центроид простого многоугольника, определяемого точками. В этой статье есть информация о том, как его рассчитать для различных геометрий.
Wolfram Alpha сделает это за вас, если вы зададите вопрос в следующей форме: центроид многоугольника с вершинами: (X, Y), (X, Y), (X, Y), (X, Y), (X, Ю) и др.
Просто не забудьте сначала преобразовать каждое «(X, Y)» в десятичную форму. Wolfram Alpha вернет ответ в десятичной форме, которую затем можно скопировать и вставить в Google Планета Земля.
См. ответ Мо, хотя, если ваши точки распределены по всему миру, вы должны быть удовлетворены тем, что ваш центр стремится к нулевому меридиану, а не к международной линии перемены дат.