0

我正在查询 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 文档中找到与实现此目的的功能相关的任何内容。

4

1 回答 1

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'
于 2012-10-19T20:29:45.240 回答