Обчисліть середню точку з ряду координат широти та довготи


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.