Pergunta

Eu estou escrevendo um aplicativo de mapeamento que estou escrevendo em python e eu preciso para obter a latitude / longitude centróide 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 para ser capaz de fazê-lo por mais de dois pontos.

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

Foi útil?

Solução

Tenha um olhar para o documento pdf no link abaixo. Ele explica como aplicar o algoritmo 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 < br> 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

Outras dicas

Adicionando 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)?

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 = então Média atan2 (soma de senos, soma dos cossenos)
(Cuidado da ordem argumento em sua função atan2)

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

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

A seguir PDF 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.

Conversão entre 3-D cartesiano e elipsoidais latitude, longitude e altitude coordenadas

Separadamente calcular a média das latitudes e longitudes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top