Я использую геосервер и листовку, чтобы показать некоторые данные в приложении.
Геосервер подключается к БД, содержащей пространственные данные (точки) в формате EPSG:3785.
Листовке требуется формат EPSG:4326 для отображения данных, поэтому я получаю ссылку geojson на эти данные, запрашивая геосервер перепроецировать координаты из EPSG:3785 в EPSG:4326, используя параметр WFS srsName. Проблема в том, что долгота перепроецируется правильно, а широта — нет.
Например, одна из моих точек имеет следующие координаты: 1078019.71674498 ; 5630250.19147139
Используя CS2CS для их преобразования, результат будет 9.68401588134 ; 45.0554183303 (что верно при отображении на карте), в то время как геосервер возвращает 9.68401588 ; 45.24751598, далеко от позиции, которую они должны представлять (примерно 30 км к северу).
Я не могу понять, почему неверна только долгота и что мне делать, чтобы этого не произошло, кроме запроса данных в правильном формате.
Случайно ли у кого-нибудь была такая же проблема? Поискав в интернете, я не нашел ничего, что могло бы мне помочь.
Я попытался преобразовать данные в определении слоя, но это было бесполезно, проблема осталась.
3785 устарел. Вместо этого используйте 3857, потому что они практически идентичны. Датумы и проекции разные, но они математически эквивалентны.
@IanTurton, к сожалению, итальянские данные часто предоставляются в этом формате, но они старые, возможно, они были недавно обновлены (но я так не думаю).
@ LucasP.Luiz Я попробовал то, что вы предложили, и это сработало! Спасибо!





Если кто-то столкнется с этой проблемой в будущем, вот решение:
как прокомментировал LucasP.Luiz, это просто установить Declared SRS в определении слоя на EPSG: 3857 (см. пример), тогда проекция работает, как задумано.
Вы действительно уверены, что ваши входные данные действительно в 3857? Это было бы необычно для любых данных реального мира.