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 の最初の 2 つの要素を GPS 座標に変換するにはどうすればよいですか? これを実現する関数に関連する Oracle Spatial のドキュメントを見つけることができませんでした。

4

1 に答える 1

0

convert_to_lrs_geom()に渡す前に、 を使用して形状の座標系を変換する必要があることがわかりましたsdo_cs.transform()。この場合、SRID は 8307 であるため (SRID が問題であることを指摘してくれた jim mcnamara に感謝します)、正しい座標を返す 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 に答える