2012-10-18 54 views
0

我在查询SDO_GEOMETRY字段以返回形状中的给定点,并且我想获取该点的GPS坐标。我的查询如下:如何在Oracle Spatial中将XY坐标转换为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

那些看起来像状态平面坐标。你在用什么SRID –

回答

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'