Как найти центр нескольких географических точек?

Если у меня есть ряд точек, таких как долгота и широта, как мне рассчитать центр всех этих точек?


person dvorak    schedule 24.09.2008    source источник


Ответы (7)


Geomidpoint охватывает 3 различных метода расчета.

person dvorak    schedule 24.09.2008

Несколько человек ответили, что взяли среднее значение широты и долготы. Идея вроде бы правильная, но средства на сфере сложнее.

Представление широты/долготы является по существу искусственным и имеет разрывы (на полюсах и напротив нулевого меридиана, если вы не будете осторожны), поэтому принимая во внимание средства, они не кажутся (мне) вероятными иметь разумную геометрическую интерпретацию. . Я думаю, вам нужно сделать что-то вроде усреднения векторов в координатах с центром на земле, а затем нормализовать результат, чтобы вернуть его на сферу.

Я надеюсь, что кто-то с большим опытом в этих вопросах может прокомментировать более конкретно.

person Doug McClean    schedule 24.09.2008

Не берите только средние значения.

Вы можете преобразовать в 3D-координаты, затем взять среднее значение (координат x, y и z), затем спроецировать его обратно на сферу и превратить обратно в широту/долготу.

На странице википедии, посвященной сферическим координатам, есть алгоритмы преобразования.

person Tyler    schedule 24.09.2008

Во-первых, вам нужно определить, какой центр вас интересует. Возьмите эти два пункта:

A.                          .B

Центр легко, это на полпути между ними. Теперь добавьте третью точку:

A. C.                       .B

Находится ли центр по-прежнему на полпути между А и В или он смещается в сторону А из-за С? Так является ли центр точкой, ближайшей ко всем точкам, или только к точкам окружающего многоугольника?

Кроме того, поскольку вы имеете дело с долготой/широтой, точки находятся на поверхности сферы, поэтому расстояние между длинными 0 и длинными 90 градусами намного больше на широте 0, чем на широте 45 градусов.

person Skizz    schedule 24.09.2008
comment
Я думаю, что это было бы c, так как это дало бы некоторый вес. - person dvorak; 24.09.2008

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

person newdayrising    schedule 24.09.2008
comment
Центроид — это центр области или формы, а не центр множества отдельных точек. - person Moe; 24.09.2008
comment
Количество различных точек определяет форму, поэтому мы имеем дело с формой, независимо от того, называем мы ее так или нет. - person newdayrising; 24.09.2008
comment
Несколько отдельных точек могут определять большое количество различных фигур, в зависимости от того, как вы их соедините. Кроме того, я ничего не вижу в статье в Википедии о сферических системах координат. - person dvorak; 24.09.2008
comment
Точно! Если нет определенного способа определить форму, то нет определенного способа определить ее центр. Если вы хотите найти центр, вы должны сначала решить, как определить форму. - person Moe; 24.09.2008
comment
Способ определения формы состоит в том, чтобы соединить точки либо по часовой стрелке, либо против часовой стрелки; не важно. Однако вы правы в том, что я должен был быть более конкретным при указании простого многоугольника, а не общей формы. - person newdayrising; 24.09.2008

Wolfram Alpha сделает это за вас, если вы зададите вопрос в следующей форме: центроид многоугольника с вершинами: (X, Y), (X, Y), (X, Y), (X, Y), (X, Ю) и др.

Просто не забудьте сначала преобразовать каждое «(X, Y)» в десятичную форму. Wolfram Alpha вернет ответ в десятичной форме, которую затем можно скопировать и вставить в Google Планета Земля.

person user3412624    schedule 24.10.2014

См. ответ Мо, хотя, если ваши точки распределены по всему миру, вы должны быть удовлетворены тем, что ваш центр стремится к нулевому меридиану, а не к международной линии перемены дат.

person Adam Bellaire    schedule 24.09.2008