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