Namn

ST_LocateBetween — Returnerar de delar av en geometri som matchar ett mätintervall.

Synopsis

geometry ST_LocateBetween(geometry geom, float8 measure_start, float8 measure_end, float8 offset = 0);

Beskrivning

Returnerar en geometri (samling) med de delar av den inmatade uppmätta geometrin som matchar det angivna mätområdet (inklusive).

Om offset anges kommer resultatet att förskjutas till vänster eller höger om inmatningsraden med det angivna avståndet. En positiv förskjutning blir till vänster och en negativ till höger.

Att klippa en icke-konvex POLYGON kan ge ogiltig geometri.

Semantiken specificeras av standarden ISO/IEC 13249-3 SQL/MM Spatial.

Tillgänglighet: 1.1.0 med det gamla namnet ST_Locate_Between_Measures.

Ändrad: 2.0.0 - i tidigare versioner hette detta ST_Locate_Between_Measures.

Förbättrad: 3.0.0 - stöd för POLYGON, TIN, TRIANGLE har lagts till.

Denna funktion stöder M-koordinater.

Denna metod implementerar SQL/MM-specifikationen. SQL-MM IEC 13249-3: 5.1

Exempel

Kod
SELECT ST_LocateBetween(
'MULTILINESTRING M ((1 2 3,3 4 2,9 4 3),(1 2 3,5 4 5))'::geometry,
1.5,
3);
Utdata
GEOMETRYCOLLECTION M (LINESTRING M (1 2 3,3 4 2,9 4 3),POINT M (1 2 3))
Figur
Geometry figure for visual-st-locatebetween-01

Extrahera sektionen mellan måtten 2 och 8, förskjuten åt vänster. Eftersom den beskurna linjen och resultatet av förskjutningen delar samma koordinatutrymme är det här exemplet avsett för en enda överlagrad panel i stället för separata figurer sida vid sida.

Kod
SELECT ST_LocateBetween(
ST_AddMeasure(
    'LINESTRING (20 180,50 20,100 120,180 20)',
    0,
    10),
2,
8,
20);
Utdata
MULTILINESTRING((54.49835 104.53427,58.700561 82.122481,82.111456 128.944272,84.248937 132.324934,87.01637 135.21267,90.303073 137.491987,93.977598 139.071724,97.892984 139.888702,101.892639 139.910247,105.816599 139.135495,109.507928 137.595434,112.818995 135.351657,115.617376 132.493901,145.310173 95.377905))
Figur
Geometry figure for visual-st-locatebetween-02