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

时间:2013-09-19 14:30:43

标签: oracle oracle-spatial

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

我在oracle空间中只发现了一个SDO_CS.TO_USNG函数,但这转换为美国国家网格(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

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

2 个答案:

答案 0 :(得分:5)

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

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

结果:

 X            Y
----------   ----------
445099.614   7208686.74 

答案 1 :(得分:0)

只是添加到上面。找到所需SRID的一种方法(例如上面使用的82288)是查询cs_srs表。

select cs_name, srid from cs_srs where cs_name like '%UTM Zone 21%';

S_NAME SRID

UTM Zone 21(加拿大NAD 27)82281 UTM Zone 21(NAD 83)82282 UTM Zone 21,Northern Hemisphere(Corrego Alegre)82283 UTM Zone 21,Northern Hemisphere(SAD 69)82284 UTM Zone 21,Northern Hemisphere(WGS 84)82285 UTM Zone 21,Southern Hemisphere(Corrego Alegre)82286 UTM Zone 21,Southern Hemisphere(SAD 69)82287 UTM Zone 21,Southern Hemisphere(WGS 84)82288

选择了8行。