Эффективно найти ближайшую пару координат из набора в Python

Эта проблема

Представь, что я стою в аэропорту. Учитывая пару географических координат, как можно эффективно определить, в каком аэропорту я находился?

входные

Координатная пара(x,y) представляющий местоположение, в котором я стоял.Набор координатных пар[(a1,b1), (a2,b2)...] где каждая пара координат представляет один аэропорт.

Желаемый вывод

Координатная пара(a,b) из набора координатных пар аэропорта, представляющих ближайший аэропорт к точке(x,y).

Неэффективное решение

Вот моя неэффективная попытка решить эту проблему. Он четко линейен по длине множества аэропортов.

shortest_distance = None
shortest_distance_coordinates = None

point = (50.776435, -0.146834)

for airport in airports:
    distance = compute_distance(point, airport)
    if distance < shortest_distance or shortest_distance is None:
        shortest_distance = distance
        shortest_distance_coordinates = airport

Вопрос

Как можно улучшить это решение? Это может включать некоторый способ предварительной фильтрации списка аэропортов на основе координат местоположения, в котором мы сейчас находимся, или предварительной сортировки их в определенном порядке.

Ответы на вопрос(3)

Ваш ответ на вопрос