0

我正在尝试通过 Oracle Spatial 将所谓的 UTM Zone 33, Northern Hemisphere (WGS 84) SRID (Norway) 转换为 Lat/Long (Longitude / Latitude (WGS 84) SRID),并在 stackoverflow 上找到了一些很好的例子。问题是,无论哪个 SRID 用作源(引用 UTM 33N),纬度/经度的结果似乎都被抵消了,并将任何位置都放在了西边的近海。

代码:

select t.sdo.sdo_point.x as x
     , t.sdo.sdo_point.y as y
  from (select sdo_cs.transform( 
                       sdo_geometry( 2001
                                   , 82347  -- UTM Zone 33N SRID,
                                   , SDO_POINT_TYPE(a.coordinate_x,a.coordinate_y,NULL)
                                   , null
                                   , null)
                             , 8307     --Longitude / Latitude (WGS 84)  SRID  
                            ) as sdo
        from table a
      ) t;

我的一位同事实际上基于以下内容在 SAS 中对逐步计算进行了硬编码:http ://www.uwgb.edu/dutchs/usefuldata/utmformulas.htm )

他的结果是

北纬 6716777,东经 40137 --> 纬度 60.321808644 纬度 6.6585114124

它实际上与谷歌地图相匹配。

上面的代码,对于我来说相同的输入值生成:

64.0777530402641 0.231518684247992

对于 32633 等其他 SRID,我得到了类似的值。

任何想法我做错了什么?

4

1 回答 1

0

哎呀,似乎在数据库中 x 和 y 是相反的(错误标记),当旋转时,工作正常!

于 2015-01-07T21:09:50.540 回答