Determinar o centróide de múltiplos pontos

votos
6

Eu estou escrevendo um aplicativo de mapeamento que estou escrevendo em python e eu preciso para obter o lat centroid / lon de N pontos. Digamos que eu tenha dois locais

a.lat = 101
a.lon = 230

b.lat = 146
b.lon = 200

Obtendo o centro de dois pontos é bastante fácil usando uma fórmula euclidiana. Eu gostaria de ser capaz de fazê-lo por mais de dois pontos.

Fundamentalmente eu estou procurando fazer algo como http://a.placebetween.us/ onde se pode inserir vários endereços e encontrar um local que é equidistante para todos.

Publicado 09/12/2008 em 19:06
fonte usuário
Em outras línguas...                            


6 respostas

votos
1

A matemática é bem simples se os pontos formam uma figura plana . Não há garantia, porém, que um conjunto de latitudes e longitudes são assim tão simples, por isso pode primeiro ser necessário encontrar o casco convexo dos pontos.

EDIT: Como eJames aponta, você tem que fazer as correções para a superfície de uma esfera. A minha culpa por assumindo (sem pensar) que este foi entendido. +1 para ele.

Respondeu 09/12/2008 em 19:17
fonte usuário

votos
3

Somando-se a resposta Andrew Rollings'.

Você também vai precisar para se certificar de que se você tem pontos em ambos os lados da linha 0/360 longitude que você está medindo na "direção certa"

Is the center of (0,359) and (0, 1) at (0,0) or (0,180)?
Respondeu 09/12/2008 em 19:20
fonte usuário

votos
7

Ter um olhar para o documento pdf no link abaixo. Ele explica como aplicar o algoritmo de avião figura que Bill o Lagarto menciona, mas na superfície de uma esfera.

miniaturas cartaz e alguns detalhes http://img51.imageshack.us/img51/4093/centroidspostersummary.jpg
Fonte: http://www.jennessent.com/arcgis/shapes_poster.htm
Há também um 25 MB de tamanho completo PDF disponível para download.
O crédito vai para mixdev para encontrar o link para a fonte original, e, naturalmente, para Jenness Empresas para tornar as informações disponíveis. Nota: Eu estou em nenhuma maneira afiliado com o autor deste material.

Respondeu 09/12/2008 em 19:44
fonte usuário

votos
3

Se você está com média de ângulos e tem que lidar com eles cruzando a 0/360, em seguida, é mais seguro para somar o pecado e cos de cada valor e, em seguida, média = atan2 (soma de senos, soma dos cossenos)
(cuidado da ordem argumento na sua função atan2)

Respondeu 09/12/2008 em 19:56
fonte usuário

votos
-2

Separadamente calcular a média das longitudes e latitudes.

Respondeu 09/12/2008 em 21:34
fonte usuário

votos
0

O PDF abaixo tem um pouco mais detalhe do que o cartaz de Jenness Enterprises. Ele também lida com a conversão em ambos os sentidos e por um esferóide (como a Terra), em vez de uma esfera perfeita.

Convertendo entre 3-D latitude cartesiano e elipsoidal, longitude e coordenadas altura

Respondeu 11/11/2011 em 22:38
fonte usuário

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