sql >> Database >  >> RDS >> Oracle

Middelpunt van SDO.GEOMETRY-polylijn ophalen

Oracle Spatial heeft een lineaire verwijzing pakket genaamd SDO_LRS . Het kan worden gebruikt om de middelpuntcoördinaten van een polylijn te vinden.

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

Voor bonuspunten:

Dit is hoe ESRI's SDE.ST_GEOMETRY kan worden geconverteerd naar SDO_GEOMETRY om de middelpuntcoördinaten te krijgen:

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)

Dit antwoord is geïnspireerd op een antwoord op Code Review:Bereken het middelpunt van een polylijn .



  1. MySQL ODBC-probleem:naam van gegevensbron niet gevonden en geen standaardstuurprogramma opgegeven

  2. MySQL - Combineren van INSERT, VALUES en SELECT?

  3. Exporteer MySQL naar CSV, sommige kolommen met aanhalingstekens en sommige zonder

  4. loop door multidimensionale array in php en voer mysql in (voorraadgegevens)