Wie kann ich eine Koordinatenliste für ein Rechteck gegen den Uhrzeigersinn sortieren?

Ich muss eine Koordinatenliste für ein Rechteck gegen den Uhrzeigersinn sortieren und die nordöstliche Ecke zur ersten Koordinate machen. Dies sind geografische Koordinaten (d. H. Längengrad, Breitengrad) in Dezimalform.1

Hier sind zum Beispiel die 4 Ecken eines Rechtecks, beginnend mit der nordwestlichen Ecke und im Uhrzeigersinn bewegend:

[
  { "lat": 34.495239, "lng": -118.127747 }, # north-west
  { "lat": 34.495239, "lng": -117.147217 }, # north-east
  { "lat": 34.095174, "lng": -117.147217 }, # south-east
  { "lat": 34.095174, "lng": -118.127747 }  # south-west
]

Ich muss diese gegen den Uhrzeigersinn sortieren und den "Anker" / Startpunkt in Nordosten ändern:

[
  { "lat": 34.495239, "lng": -117.147217 }, # north-east
  { "lat": 34.495239, "lng": -118.127747 }, # north-west
  { "lat": 34.095174, "lng": -118.127747 }, # south-west
  { "lat": 34.095174, "lng": -117.147217 }  # south-east
]

Ich weiß nicht, in welcher Reihenfolge sich die Liste anfangs befindet (d. H. Im oder gegen den Uhrzeigersinn). Ich weiß nicht, welche Ecke die erste Koordinate in der Liste darstellt.

1Dies ist kein echtes Rechteck, wenn es auf die Erdoberfläche abgebildet wird. Da ich jedoch zwei gegenüberliegende Ecken habe, bezeichne ich es aus Gründen der Lesbarkeit als Rechteck. Formen, die eine Länge von + 180 / -180 oder eine Breite von + 90 / -90 einschließen, sind kein Problem.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage