Рассчитать среднюю точку из ряда координат широты и долготы


9

У меня есть ряд координат долготы и широты, которые представляют собой контур здания

например

-0.5485381346101759,53.2285150736142
-0.5482220594232723,53.22842450827133
-0.5482298619861881,53.22841205254449

... (промежуточные точки не указаны) ...

-0.5483123769301657,53.22882101914848

Как я могу определить среднюю точку? Я нашел учебники, которые показывают, как это сделать, если у вас есть три координаты (например, http://mathforum.org/library/drmath/view/68373.html ), но во многих случаях у меня есть более трех ,

Спасибо


2
Это зависит от того, что вы подразумеваете под «средней точкой» - вы имеете в виду центроид ?

3
Рекомендация: попытайтесь сами, а затем обратитесь за помощью, если это не правильно - give me the answerвопросы, как правило, здесь не одобряются.

Ответы:


8

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

Редактировать: как указано, указанный выше метод не будет работать, если здание не прямоугольник или правильный многоугольник. Для произвольной формы формула здесь дает правильный результат.


@murgatroid Замечание о том, что проекция не нужна, отличное. К сожалению, усреднение координат вершин не дает центроида здания.
whuber

@whuber Спасибо, я обновил свой пост с правильным методом.
murgatroid99

Можете ли вы определить «близко друг к другу»?
Кев

4

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

http://en.wikipedia.org/wiki/Centroid#Centroid_of_polygon

(И я согласен с более ранними плакатами: вы можете рассматривать широту и долготу как декартовы координаты, потому что здание маленькое, оно далеко от полюса и от международной линии дат.)


+1 за предоставление важных ограничений на область применения этого приближения и за предоставление ссылки на формулы. Кстати, в последней рекомендации есть тонкое (но правильное) предположение: есть относительное искажение расстояний (которое можно вылечить, умножив долготы на косинусы широт), но для целей вычисления центроида это это не важно. (Для связанных вычислений, таких как поиск углов, это будет иметь большое значение.)
whuber

Этот метод гарантирует точку ВНУТРИ многоугольника? Я не знаю, каково окончательное использование данных, но некоторые виды использования требуют, чтобы точка находилась внутри. В этом сценарии среднее арифметическое определенно не гарантирует результат (например, арифметический центр Хорватии даже не в этой стране)!
Марк Ирландия

Нет гарантии, что центр тяжести многоугольника находится внутри многоугольника (кроме случаев, когда он, конечно, выпуклый).
cffk

2

Преобразование из географических координат в геоцентрические, усреднение геоцентрических векторов, затем преобразование обратно в географические.


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

1

Центроид конечного числа точек - это просто среднее арифметическое каждой из координат. Так что просто суммируйте широты и долготы и разделите на количество точек.


3
не, если многоугольник пересекает линию даты
Пол Рэмси

@Paul @tskuzzy Кроме того, это предписание не подходит: здание - это не множество его вершин, а внутренняя часть замкнутой ломаной линии, прорисованной этими вершинами.
whuber

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.