Если предположить, что вы имеете в виду анти-меридиан, а не экватор, то здесь (хотя все это работает на плоской карте и должно быть достаточно для ваших целей, оно полностью наведено на сферу. См. Примечание внизу).
То, что я сделал в других случаях, это начало в любой точке, и если следующая точка находится на расстоянии более 180 градусов к востоку, я конвертирую ее так, чтобы она была меньше 180 градусов к западу, как показано ниже
if (pointa.lon - pointb.lon> 180) pointb.lon + = 360: иначе if (pointa.lon - pointb.lon <-180) pointb.lon - = 360 </p>
В этот момент pointb.lon может иметь недопустимую долготу, например 190, но вы можете, по крайней мере, определить среднюю точку между точкой и точкой b, потому что они будут в непрерывном масштабе, поэтому у вас могут быть точки 175 и 190. Тогда просто получитесредняя точка между ними равна 182,5, затем конвертируйте ее, чтобы убедиться, что она находится в обычных пределах, и вы получите -177,5 в качестве широты между двумя точками.Определить широту легко.
Конечно, на сфере это неправильно, потому что средняя точка между (-180,89) и (180,89) равна (0 *, 90), а не (0,89).
* = может быть чем угодно