Определить центр тяжести нескольких точек
-
20-08-2019 - |
Вопрос
Я пишу картографическое приложение, которое пишу на Python, и мне нужно получить центроид широты и долготы из N точек.Скажем, у меня есть два места
a.lat = 101
a.lon = 230
b.lat = 146
b.lon = 200
Получить центр двух точек довольно легко, используя формулу Евклида.Я хотел бы иметь возможность сделать это более двух точек.
По сути, я хочу сделать что-то вроде http://a.placebetween.us/ где можно ввести несколько адресов и найти место, равноудалённое для всех.
Решение
Взгляните на PDF-документ, ссылка на который приведена ниже.Там объясняется, как подать заявку алгоритм плоской фигуры, который ящерица Билла упоминается, но на поверхности сферы.
миниатюра постера и некоторые подробности http://img51.imageshack.us/img51/4093/centroidspostersummary.jpg
Источник: http://www.jennessent.com/arcgis/shapes_poster.htm
Существует также Полноразмерный PDF-файл размером 25 МБ. доступен для скачивания.
Кредит идет на миксдев за поиск ссылки на первоисточник и, конечно же, Jenness Enterprises за предоставление информации.Примечание:Я никоим образом не связан с автором данного материала.
Другие советы
Добавление к ответу Эндрю Роллингса.
Вам также необходимо убедиться, что если у вас есть точки по обе стороны от линии долготы 0/360, которые вы измеряете в «правильном направлении»,
Is the center of (0,359) and (0, 1) at (0,0) or (0,180)?
Если вы усредняете углы и имеете дело с ними, пересекающими 0/360, тогда безопаснее суммировать грех и косинус каждого значения, а затем Среднее = atan2 (сумма синусов, сумма косинусов)
(будьте осторожны с порядком аргументов в вашей функции atan2)
Математика довольно проста, если точки образуют плоская фигура.Однако нет никакой гарантии, что набор широт и долгот настолько прост, поэтому сначала может потребоваться найти выпуклая оболочка точек.
РЕДАКТИРОВАТЬ:Как ЭДжеймс указывает, что вам придется внести поправки на поверхность сферы.Моя вина, что я предположил (не подумав), что это было понято.+1 ему.
PDF-файл ниже содержит немного больше деталей, чем плакат от Jenness Enterprises.Он также обрабатывает преобразование в обоих направлениях и для сфероида (например, Земли), а не для идеальной сферы.
Отдельно усредните широту и долготу.