sql >> Databáze >  >> RDS >> Oracle

Získejte střed křivky SDO.GEOMETRY

Oracle Spatial má lineární odkazování balíček s názvem SDO_LRS . Lze jej použít k nalezení souřadnic středového bodu křivky.

--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

Pro bonusové body:

Takto je SDE.ST_GEOMETRY lze převést na SDO_GEOMETRY za účelem získání souřadnic středu:

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)

Tato odpověď byla inspirována odpovědí na Code Review:Vypočítat střed křivky .



  1. Malá rada ohledně Cassandra vs. MySQL

  2. Dotaz Python SQLAlchemy:AttributeError:Objekt 'Connection' nemá žádný atribut 'contextual_connect'

  3. MySQL Aktualizace více řádků v jednom sloupci na základě hodnot ze stejného sloupce

  4. Jak zajistit, aby v číslech auto_increment nebyly žádné mezery?