Страница 1 из 2

Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 08 апр 2020, 11:46
Snef
Здравствуйте!
Помогите, пожалуйста, решить проблемму со сдвигом координат.
У меня есть два TAB файла, с системами координат - одна в метрах, другая в градусах.
GDAL говорит, что они такие:
файл A:

Код: Выделить всё

LOCAL_CS["Nonearth",UNIT["Meter",1.0]] 
файл Б:

Код: Выделить всё

GEOGCS["unnamed",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]]
Онлайн сервис для конвертации говорит, что такие:
файл А:

Код: Выделить всё

WGS 84 / Pseudo-Mercator (EPSG:3857) 
файл Б:

Код: Выделить всё

WGS 84 (EPSG:4326) 
В файле A у меня полигон, в файле Б точка с координатами в градусах:

Код: Выделить всё

13.685983, 6.276257
я хочу ее сконвертировать в систему координат файла А (в метрах).
При конвертации во всех онлайн сервисах и с помощью GDAL и с помощью openlayers она переводится в точку:

Код: Выделить всё

1523516.658565399004146, 700071.198322909418494
Что не правильно относительно файла A (точка не попадает в полигон)
И только в MapInfo она переводится в точку:

Код: Выделить всё

1521811.2, 697887.6
что правильно, относительно полигона.
Вопрос: Почему возникают такие отличия? Может ли это быть из-за того, что
"degree" в GDAL 0.0174532925199433, а не 0.017453292519943295 ?
Или из-за того что фактически LOCAL_CS это не указанная система координат и между ней и EPSG:3857 может быть какой то сдвиг?

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 08 апр 2020, 12:06
lam
Snef писал(а):
08 апр 2020, 11:46
У меня есть два TAB файла, с системами координат - одна в метрах, другая в градусах.
Выкладывайте оба TAB файла или их фрагменты.

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 08 апр 2020, 12:26
Snef
Выкладываю файлы.
Так отображается в MapInfo:
Изображение
А так после конвертации другими способами (онлайн сервисы, GDAL, openlayers):
Изображение

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 08 апр 2020, 13:44
lam
Snef писал(а):
08 апр 2020, 11:46
LOCAL_CS["Nonearth",UNIT["Meter",1.0]]
Должна быть описана LOCAL_CS, скорее всего - это МСК. В таком виде как у Вас не пойдет.

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 08 апр 2020, 14:36
Snef
Спасибо большое! А почему Map Info может правильно преобразовать WGS 84 (которая в градусах) к этой самой LOCAL_CS, если открыть сначала файл с полигонами, а потом с точками? Можно ли как то узнать что это за LOCAL_CS? В .wor файле есть такая информация:

Код: Выделить всё

Set Map
  CoordSys Earth Projection 1, 104

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 08 апр 2020, 14:44
lam
Snef писал(а):
08 апр 2020, 14:36
А почему Map Info может правильно преобразовать WGS 84
Вы уверены в правильности? Скорее всего, наложение произошло случайным образом.

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 08 апр 2020, 15:03
Snef
lam писал(а):
08 апр 2020, 14:44
Вы уверены в правильности?
Да, именно в map info точки там где должны быть. Это очень странно и похоже на какую-то погрешность.

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 08 апр 2020, 15:33
lam
Snef писал(а):
08 апр 2020, 11:46
В файле A у меня полигон, в файле Б точка с координатами в градусах:
КОД: ВЫДЕЛИТЬ ВСЁ

13.685983, 6.276257
Ваши координаты в градусах попадают в Африку, так и должно быть?

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 08 апр 2020, 16:18
Snef
lam писал(а):
08 апр 2020, 15:33
Ваши координаты в градусах попадают в Африку, так и должно быть?
Да, с этим все правильно (должно быть где-то в Камеруне :) ) Важно только взаимное расположение объектов слоев.

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 08 апр 2020, 19:44
lam
Snef писал(а):
08 апр 2020, 16:18
Важно только взаимное расположение объектов слоев.
Необходимо знать или попытаться определить параметры системы координат в LOCAL_CS. Только после этого можно производить трансформацию.
Почему у Вас не совпадают результаты трансформаций между онлайн сервисами и мапинфо?
Да потому, что Вы для онлайн сервисов обозначаете LOCAL_CS как:
Snef писал(а):
08 апр 2020, 11:46
WGS 84 / Pseudo-Mercator (EPSG:3857)
В мапинфо же трансформация вообще не происходит по всем правилам, потому что LOCAL_CS указана как "Non-Earth (meters)", а для этой системы координат трансформация вообще не предусмотрена.
Укажите для мапинфо что LOCAL_CS:
Snef писал(а):
08 апр 2020, 11:46
WGS 84 / Pseudo-Mercator (EPSG:3857)
и получите одинаковые результаты с онлайн сервисами.

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 09 апр 2020, 09:06
Snef
Спасибо, стало яснее! Скажите, пожалуйста, каким образом Map Info переводит:

Код: Выделить всё

13.685983, 6.276257
в

Код: Выделить всё

1521811.2, 697887.6
или где об этом можно прочитать? Я думаю это распространенный случай?
По LOCAL_CS - в настройках map info стоит "План-схема (метры)".

Данные на самом деле кривые, и скорее всего, два слоя наложены в предположении, что LOCAL_CS это EPSG:3857 (отсюда попадание в Африку) - просто не стали разбираться с системой координат. Затем уже в системе WGS 84 нарисовали в Африке слой с точками, так, чтобы они визуально совпадали со слоем полигонов.
Т.е например была точка полигона в LOCAL_CS 1518467.7, 696453.07 и просто сказали, что это не LOCAL_CS-план схема, а EPSG:3857 и точка в Африке.

Было бы очень нужно узнать как MapInfo переводит 13.685983, 6.276257 в свои 1521811.2, 697887.6, чтобы просто отобразить ее (на другой карте) так же как в MapInfo.

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 10 апр 2020, 21:06
lam
Запутали Вы нас со своей Африкой :)
Как я и предположил ранее, у Вас МСК-10 зона 1(https://mapbasic.ru/msk10)
С помощью мапинфо сохраняете обратно точки, которые у Вас в WGS 84, в "План-схема (метры)".
Потом присваиваете и полигонам и точкам параметры МСК-10 зона 1 и пересчитываете в WGS84 во всех онлайн сервисах и с помощью GDAL и с помощью openlayers.

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 11 апр 2020, 11:13
gamm
Snef писал(а):
09 апр 2020, 09:06
нужно
Разработчики Мапинфы сделали глупость, и вместо того, чтобы ругаться на попытки трансформировать такие системы координат, их трансформируют, почти наверняка считая, что это градусы, и скорее всего на WGS84. Гадать не нужно, нужно писать нормальную СК.

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 11 апр 2020, 11:21
lam
gamm писал(а):
11 апр 2020, 11:13
Разработчики Мапинфы сделали глупость, и вместо того, чтобы ругаться на попытки трансформировать такие системы координат, их трансформируют, почти наверняка считая, что это градусы, и скорее всего на WGS84. Гадать не нужно, нужно писать нормальную СК.
Полностью с Вами согласен, "План-схему (метры)" надо закрывать для возможности координатных трансформаций, это уже не первые слои TAB которые мне попадались с такими градусами на WGS84.

Re: Разница при конвертации WGS84 в EPSG:3857 в MapInfo и GDAL

Добавлено: 13 апр 2020, 10:09
Snef
gamm, lam огромное вам спасибо за помощь! :D