Effizientes Finden des nächsten Koordinatenpaars aus einer Menge in Python

Das Proble

Stellen Sie sich vor, ich stehe auf einem Flughafen. Wie kann man bei einem gegebenen geografischen Koordinatenpaar effizient bestimmen, auf welchem Flughafen ich stehe?

Eingänge

Ein Koordinatenpaar(x,y) Stellvertretend für den Standort, an dem ich stand. Ein Satz Koordinatenpaare[(a1,b1), (a2,b2)...] wobei jedes Koordinatenpaar einen Flughafen darstellt.

Gewünschte Ausgabe

Ein Koordinatenpaar(a,b) aus der Menge der Flughafenkoordinatenpaare, die den nächstgelegenen Flughafen zum Punkt @ darstell(x,y).

Ineffiziente Lösung

Hier ist mein ineffizienter Versuch, dieses Problem zu lösen. Es ist eindeutig linear in der Länge der Reihe von Flughäfen.

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

Die Frag

Wie kann diese Lösung verbessert werden? Dies kann dazu führen, dass die Liste der Flughäfen auf der Grundlage der Koordinaten des Standorts, an dem wir uns gerade befinden, vorab gefiltert oder in einer bestimmten Reihenfolge sortiert wird.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage