Eu preciso usar o Python para criar uma grande distância do círculo - um número e, de preferência, algum tipo de 'curva' que eu possa usar para desenhar em um mapa do lado do cliente. Eu não me importo com o formato da curva - seja WKT ou um conjunto de pares de coordenadas - mas apenas quero extrair os dados.
Quais ferramentas existem por aí? O que devo usar?
python
distance
polyline-creation
great-circle
Christopher Schmidt
fonte
fonte
As respostas fornecidas por outras pessoas são um pouco mais elegantes, mas aqui está um trecho de Python ultra-simples, um tanto atípico, que fornece o básico. A função utiliza dois pares de coordenadas e um número de segmentos especificado pelo usuário. Ele produz um conjunto de pontos intermediários ao longo de um grande caminho circular. Saída: texto pronto para escrever como KML. Advertências: O código não considera antípodas e assume uma terra esférica.
Código de Alan Glennon http://enj.com julho de 2010 (o autor coloca esse código em domínio público. Use por seu próprio risco).
-
def tweensegs (longitude1, latitude1, longitude2, latitude2, num_de_segmentos):
fonte
GeographicLib tem uma interface python :
Isso pode geodésico de computador em um elipsóide (defina o achatamento para zero para obter grandes círculos) e pode gerar pontos intermediários em um geodésico (consulte os comandos "Linha" na amostra).
Veja como imprimir pontos na linha geodésica do JFK ao aeroporto de Changi (Cingapura):
fonte
pyproj possui a função Geod.npts que retornará uma matriz de pontos ao longo do caminho. Observe que ele não inclui os pontos de terminal na matriz, portanto, você deve levá-los em consideração:
fonte
geopy Uma caixa de ferramentas de geocodificação para Python
http://code.google.com/p/geopy/wiki/GettingStarted#Calculating_distances
fonte
Não usei este pacote, mas parece interessante, e uma possível solução: http://trac.gispython.org/lab/wiki/Shapely
fonte
Shapely is a Python package for set-theoretic analysis and manipulation of **planar** features