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