Как я могу отсортировать список координат для прямоугольника против часовой стрелки?

Мне нужно отсортировать список координат для прямоугольника против часовой стрелки и сделать северо-восточный угол первой координатой. Это географические координаты (то есть долгота, широта) в десятичной форме.

Например, вот 4 угла прямоугольника, начиная с северо-западного угла и двигаясь по часовой стрелке:

[
  { "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
]

Мне нужно отсортировать их против часовой стрелки и изменитьякорь»/ отправная точка на северо-восток:

[
  { "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
]

Я не знаю, в каком порядке будет список вначале (то есть по часовой стрелке или против часовой стрелки). Я не знаю, какой угол представляет первая координата в списке.

Это не настоящий прямоугольник при отображении на поверхность земли, однако, поскольку у меня есть 2 противоположных угла, я называю его прямоугольником для удобства чтения. Формы, которые обертывают + 180 / -180 долготы или + 90 / -90 широты, не являются проблемой.

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

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