Backend Python. Требуется настроить приём и возврат координат lat, lon

Цена договорная
16 марта 2024, 21:02 • 12 откликов • 83 просмотра
Проблема в следующем:

У нас не корректно отображаются маршруты на карте, которые были записаны за пределами долготы от -90 до 90.

Причина:

в ios координаты хранятся в объекте с понятными полями latitude и longitude
но на сервер они передаются в обычном WKT формате, где две координаты просто пишутся через пробел: LINESTRING(37.8 -90.4,37.9 -90.1,38.0 -90.4)
Обратно они возвращаются уже в geojson, там примерно такая же ситуация: массив массивов по два числа

И случилось так, что приложение передавало координаты (lat, lon), а сервер думал, что получает (lon, lat)
Поэтому, когда сервер получал такую строку: LINESTRING(37.8 -90.4,37.9 -90.1,38.0 -90.4), он думал, что долгота не может быть < -90 и менял ее соответсвующим образом -90.4 -> -89.6


Задача:

Настроить бэк так, чтобы все записанные маршруты за пределами -90 и 90 долготы отображались корректно, как раннее записанные, так и новые. И при этом, все оставшиеся, корректные маршруты не слетели и отображались как сейчас правильно.

Предлагаемое решение от фронта:

"Сейчас же именно сервер, получая координаты, меняет их, если они за границами -90 90.
Если эту проверку просто убрать, и задать порядок координат lat, lon (не меняя самого порядка получения выдачи) - тогда все останется как есть.

Приложение как и раньше будет записывать координаты в формате lat, lon.
Бэк будет знать, что у него координаты хранятся в формате lat, lon."

Файлы