Преобразование пространственной геометрии Oracle из одного SRID в другой и обратно не приводит к одинаковым координатам.

Я делаю следующее преобразование из SRID 4326 в SRID 21781:

select SDO_CS.TRANSFORM(SDO_GEOMETRY(2001, 4326,SDO_POINT_TYPE(8.554697094, 47.355028826, NULL),NULL,NULL),21781) geometrie from dual;

Что приводит к правильным координатам: 684237,530726634 / 245289,311003668

Но когда я преобразовываю это обратно в SRID 4326:

select SDO_CS.TRANSFORM(SDO_GEOMETRY(2001,21781,SDO_POINT_TYPE(684237.530726634, 245289.311003668, NULL),NULL,NULL),4326) geometrie from dual;

Полученные координаты совершенно неверны: 8.19567132311754 / 0.232474117334404

Что я делаю не так?


person Lopo    schedule 29.04.2014    source источник
comment
Я получаю 684319.949, 245508.076 из вашего первого запроса и 8.55356521, 47.3530719 из вашего второго. Если вместо этого я подключу свой ответ из первого во второй, я получу 8.55469711, 47.3550288, что близко к тому, с чего вы начали. Не знаю, какая точность ожидается. Это 11gR2, и я не использую его и не знаю, что с ним делать, но подумал, что это может быть интересно...   -  person Alex Poole    schedule 29.04.2014
comment
Имеется в виду, что это 11.2.0.3; на какой версии ты это делаешь? В этой области могут быть ошибки, глядя на MOS.   -  person Alex Poole    schedule 29.04.2014
comment
Ваша трансформация правильная! Да, это может быть ошибка. Я использую 10.2.0.5.   -  person Lopo    schedule 30.04.2014


Ответы (1)


Обновился до 11.2.0.2.0, теперь результат правильный. Это ошибка в версиях ‹ 11.2.0.1.0.

person Lopo    schedule 09.05.2014