Определить центр тяжести нескольких точек

голоса
6

Я пишу картографическое приложение, что я пишу в Python, и мне нужно, чтобы получить широты / долготы центроида N точек. Скажем, у меня есть два места

a.lat = 101
a.lon = 230

b.lat = 146
b.lon = 200

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

Фундаментально Я ищу , чтобы сделать что - то вроде http://a.placebetween.us/ , где можно ввести несколько адресов и найти место, которое равноудалены для всех.

Задан 09/12/2008 в 19:06
источник пользователем
На других языках...                            


6 ответов

голоса
7

Посмотрите на документ в формате PDF , связанных ниже. Это объясняет , как применить алгоритм плоской фигуры , что Билл Ящерица упоминает, но на поверхности сферы.

плакат эскиз и некоторые детали http://img51.imageshack.us/img51/4093/centroidspostersummary.jpg
Источник: http://www.jennessent.com/arcgis/shapes_poster.htm
Существует также 25 МБ полноразмерной PDF доступна для загрузки.
Заслуга mixdev для нахождения ссылки на первоисточник, и, конечно, Дженнессы предприятий для получения информации , доступной. Примечание: Я никоим образом не связан с автором этого материала.

Ответил 09/12/2008 в 19:44
источник пользователем

голоса
3

Если в среднем углов и приходится иметь дело с ними пересечение 0/360 , то безопаснее просуммировать грех и соз каждого значения , а затем Средние = ATAN2 (сумма синусов, сумма косинусов)
(быть осторожными порядка аргументов в функции atan2)

Ответил 09/12/2008 в 19:56
источник пользователем

голоса
3

Добавление к ответу Эндрю Rollings'.

Вы также должны убедиться, что если у вас есть точки по обе стороны от 0/360 долготы линии, которую вы измеряете в «правильном направлении»

Is the center of (0,359) and (0, 1) at (0,0) or (0,180)?
Ответил 09/12/2008 в 19:20
источник пользователем

голоса
1

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

EDIT: Как eJames указывает, что вам нужно сделать поправки на поверхности сферы. Моя вина в предположении (не думая) , что это было понято. +1 к нему.

Ответил 09/12/2008 в 19:17
источник пользователем

голоса
0

Ниже PDF имеет немного больше деталей, чем плакат с Дженнессами предприятий. Он также обрабатывает преобразование в обоих направлениях и для сфероида (например, Земли), а не идеальной сферы.

Преобразование между 3-D декартовой и эллипсоидальной широты, долготы и высоты координат

Ответил 11/11/2011 в 22:38
источник пользователем

голоса
-2

Отдельно усреднить широты и долготы.

Ответил 09/12/2008 в 21:34
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more