如何使用Oracle Spatial从纬度/经度获取UTM

Nat*_*izz 2 oracle oracle-spatial

我正在寻找一种从WGS84转换为UTM Zone 21的方法

我只SDO_CS.TO_USNG在oracle空间中找到了一个函数,但这转换为美国国家网格(USNG),这是一个例子

Select SDO_CS.to_USNG( 
             SDO_GEOMETRY( 2001,8307,
                           SDO_POINT_TYPE(-57.5451,-25.2371,NULL),
                           NULL,NULL), 
                     1
                     ) UTM_MGRS 
 from dual;

_______________
21JVN4510008687
Run Code Online (Sandbox Code Playgroud)

转换为UTM将是x = 445099,61395302,y = 7208686,7337054

Nic*_*nov 5

您可以使用sdo_cs包的transform()函数进行转换:

select t.sdo.sdo_point.x as x
     , t.sdo.sdo_point.y as y
  from (select sdo_cs.transform( 
                       sdo_geometry( 2001
                                   , 8307  --Longitude / Latitude (WGS 84)  SRID
                                   , SDO_POINT_TYPE(-57.5451,-25.2371,NULL)
                                   , null
                                   , null)
                             , 82288       -- UTM Zone 21 SRID
                            ) as sdo
        from dual
      ) t
Run Code Online (Sandbox Code Playgroud)

结果:

 X            Y
----------   ----------
445099.614   7208686.74 
Run Code Online (Sandbox Code Playgroud)