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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
19
0
16 132
7

Ответы 7

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

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

A.                          .B

В центре легко, это на полпути между ними. Теперь добавьте третий пункт:

A. C.                       .B

Центр все еще находится на полпути между A и B или он тяготеет к A из-за C? Итак, центр - это ближайшая ко всем точкам точка или только точки на окружающем многоугольнике?

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

Я думаю, что это было бы c, поскольку это придало бы некоторый вес.

dvorak 24.09.2008 21:07

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

Центроид - это центр области или формы, а не центр ряда отдельных точек.

Moe 24.09.2008 21:07

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

newdayrising 24.09.2008 21:10

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

dvorak 24.09.2008 21:12

Точно! Если нет конкретного способа определить форму, значит, нет конкретного способа определить ее центр. Если вы хотите найти центр, вам нужно сначала решить, как определить форму.

Moe 24.09.2008 21:14

Способ определения формы состоит в том, чтобы соединить точки либо по часовой стрелке, либо против часовой стрелки; неважно. Однако вы правы, что мне следовало более конкретно указать простой многоугольник вместо общей формы.

newdayrising 24.09.2008 21:46

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

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

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

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

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

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

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

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

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

Другие вопросы по теме