如何在Oracle Spatial中将XY坐标转换为GPS?

时间:2012-10-18 18:49:12

标签: sql oracle gps spatial

我正在查询SDO_GEOMETRY字段以返回形状中的给定点,我想获得该点的GPS坐标。我的查询如下:

select 
sdo_lrs.locate_pt(sdo_lrs.convert_to_lrs_geom(shape),0.02).sdo_ordinates  
from 
TEST_SCHEMA.TEST_TABLE
where 
route='ABC'
and
segmentnum='101.1'

这样会返回一个SDO_ORDINATE_ARRAY:

MDSYS.SDO_ORDINATE_ARRAY(100000.203621556,999999.57084293,0.02)

如何将SDO_ORDINATE_ARRAY的前两个元素转换为GPS坐标?我无法在Oracle Spatial文档中找到与实现此目的的函数相关的任何内容。

1 个答案:

答案 0 :(得分:0)

事实证明,在使用convert_to_lrs_geom()传递给sdo_cs.transform()之前,必须先变换形状的坐标系。在这种情况下,SRID是8307(感谢jim mcnamara指出SRID是问题),因此返回正确坐标的SQL是:

select 
sdo_lrs.locate_pt(sdo_lrs.convert_to_lrs_geom(sdo_cs.transform(shape,8307)),0.02).sdo_ordinates  
from 
TEST_SCHEMA.TEST_TABLE
where 
route='ABC'
and
segmentnum='101.1'