sql >> Databasteknik >  >> RDS >> Oracle

Hämta mittpunkten för SDO.GEOMETRY-polylinjen

Oracle Spatial har en linjär referens paket som heter SDO_LRS . Den kan användas för att hitta mittpunktskoordinaterna för en polylinje.

--In this case, 'sdo' is the name of the sdo_geometry column.

sdo_lrs.convert_to_std_geom(sdo_lrs.locate_pt(sdo_lrs.convert_to_lrs_geom(sdo,3)
    ,sdo_geom.sdo_length(sdo,3)/2)).sdo_point.x as midpoint_x,

sdo_lrs.convert_to_std_geom(sdo_lrs.locate_pt(sdo_lrs.convert_to_lrs_geom(sdo,3)
    ,sdo_geom.sdo_length(sdo,3)/2)).sdo_point.y as midpoint_y

För bonuspoäng:

Så här är ESRI:s SDE.ST_GEOMETRY kan konverteras till SDO_GEOMETRY i syfte att få mittpunktskoordinaterna:

select
    sdo_lrs.convert_to_std_geom(sdo_lrs.locate_pt(sdo_lrs.convert_to_lrs_geom(sdo,3),sdo_geom.sdo_length(sdo,3)/2)).sdo_point.x as midpoint_x,
    sdo_lrs.convert_to_std_geom(sdo_lrs.locate_pt(sdo_lrs.convert_to_lrs_geom(sdo,3),sdo_geom.sdo_length(sdo,3)/2)).sdo_point.y as midpoint_y
from
    (select
        sdo_util.from_wktgeometry(sde.st_astext(shape)) as sdo
    from
        roads)

Det här svaret är inspirerat av ett svar på Code Review:Beräkna mittpunkten för en polylinje .



  1. Mysql - Hjälp mig att ändra denna sökfråga för att få önskat resultat

  2. Timeout för OracleDataAdapter.Fill()

  3. Prestandaproblem med PostgreSQL/JooQ massinsättning vid laddning från CSV; hur förbättrar jag processen?

  4. Infoga datum i MySql med c#