Преобразование пространственной геометрии Oracle дает неправильный вывод - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь преобразовать SRID из 2180 в 2177. Это мой пример кода.

SELECT SDO_CS.TRANSFORM(MDSYS.SDO_GEOMETRY(2002,2180,null,MDSYS.SDO_ELEM_INFO_ARRAY(1,2,1),MDSYS.SDO_ORDINATE_ARRAY(461273,290199996,608231,546195962,461280,489099996,608185,353195948)),2177) geometria FROM DUAL

Выход MDSYS.SDO_ORDINATE_ARRAY(6374994,33906775,295683316,187577,6638854,92398028,551837709,962805,6387072,01129964,494707234,588496,6717195,04670803,358718858,239292) но когда я использую онлайн-конвертер, он выглядит так (правильное значение):
6527855.83,5911838.68 6527863.20 5911792.21

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

1 Ответ

1 голос
/ 16 апреля 2019

Я думаю, что причина тривиальна, вы использовали , вместо . при разделении десятичных частей. Это иногда случается и со мной;)

select sdo_cs.transform(
         mdsys.sdo_geometry(2002,2180,null,mdsys.sdo_elem_info_array(1,2,1),
                            mdsys.sdo_ordinate_array(461273.290199996,
                                                     608231.546195962,
                                                     461280.489099996,
                                                     608185.353195948)),
                            2177) geometria 
  from dual

Результат:

6527855.83374364
5911838.68338696
6527863.68346768
5911792.56737736
...