Мне нужно использовать Python, чтобы создать большое круговое расстояние - как число, так и предпочтительно некоторую «кривую», которую я могу использовать для рисования на карте на стороне клиента. Меня не волнует формат кривой - будь то WKT или набор пар координат - я просто хочу получить данные.
Какие там инструменты? Что я должен использовать?
python
distance
polyline-creation
great-circle
Кристофер Шмидт
источник
источник
Ответы, предоставленные другими, немного более изящны, но вот очень простой, немного не пифоничный, немного Python, который обеспечивает основы. Функция принимает две пары координат и указанное пользователем количество сегментов. Это дает набор промежуточных точек вдоль большого круга. Вывод: текст готов к записи в формате KML. Предостережения: кодекс не рассматривает антиподы, а предполагает сферическую землю.
Код Алан Гленнон http://enj.com июль 2010 г. (автор размещает этот код в открытом доступе. Используйте на свой страх и риск).
-
def tweensegs (долгота1, широта1, долгота2, широта2, num_of_segments):
источник
GeographicLib имеет интерфейс Python :
Это может компьютер геодезических на эллипсоиде (установить выравнивание на ноль, чтобы получить большие круги) и может генерировать промежуточные точки на геодезической (см. Команды «Линия» в примере).
Вот как распечатать точки на геодезической линии от JFK до аэропорта Чанги (Сингапур):
источник
У pyproj есть функция Geod.npts, которая будет возвращать массив точек вдоль пути. Обратите внимание, что он не включает в себя конечные точки в массиве, поэтому вам необходимо принять их во внимание:
источник
geopy Набор инструментов геокодирования для Python
http://code.google.com/p/geopy/wiki/GettingStarted#Calculating_distances
источник
Я не использовал этот пакет, но он кажется интересным и возможным решением: http://trac.gispython.org/lab/wiki/Shapely
источник
Shapely is a Python package for set-theoretic analysis and manipulation of **planar** features