2

我正在寻找一种从 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

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

4

2 回答 2

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

结果:

 X            Y
----------   ----------
445099.614   7208686.74 
于 2013-09-19T17:50:09.067 回答
0

只是为了补充上面的内容。找到您需要的 SRID(例如上面使用的 82288)的一种方法是查询 cs_srs 表。

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

S_NAME SRID


UTM 21 区(加拿大 NAD 27) 82281 UTM 21 区 (NAD 83) 82282 UTM 21 区,北半球 (Corrego Alegre) 82283 UTM 21 区,北半球 (SAD 69) 82284 UTM 21 区,北半球 (WGS 84) 82285 UTM 21 区,南半球 (Corrego Alegre) 82286 UTM 21 区,南半球 (SAD 69) 82287 UTM 21 区,南半球 (WGS 84) 82288

选择了 8 行。

于 2018-04-12T12:55:13.050 回答