Name

ST_LocateBetween — Gibt die Teile einer Geometrie zurück, die einem Messbereich entsprechen.

Synopsis

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

Beschreibung

Gibt eine abgeleitete Sammelgeometrie mit jenen Elementen zurück, die in dem gegebenen Kilometrierungsintervall liegen; das Intervall ist unbeschränkt. Polygonale Elemente werden nicht untersützt.

Wenn ein Versatz angegeben ist, werden die Resultierenden um diese Anzahl an Einheiten nach links oder rechts von der gegebenen Linie versetzt. Ein positiver Versatz geschieht nach links, ein negativer nach rechts.

Das Beschneiden eines nicht konvexen POLYGONs kann zu einer ungültigen Geometrie führen.

Die Semantik ist in der Norm ISO/IEC 13249-3 SQL/MM Spatial festgelegt.

Verfügbarkeit: 1.1.0 über die alte Bezeichnung ST_Locate_Between_Measures.

Änderung: 2.0.0 In Vorgängerversionen als ST_Locate_Along_Measure bezeichet. Der alte Name ist überholt und wird in der Zukunft entfernt ist aber noch verfügbar.

Verbessert: 3.0.0 - Unterstützung für POLYGON, TIN, TRIANGLE hinzugefügt.

Diese Funktion unterstützt M-Koordinaten.

Diese Methode setzt die SQL/MM-Spezifikation um. SQL-MM IEC 13249-3: 5.1

Beispiele

SELECT ST_AsText(
  ST_LocateBetween(
       'MULTILINESTRING M ((1 2 3, 3 4 2, 9 4 3),(1 2 3, 5 4 5))':: geometry,
       1.5, 3 ));
------------------------------------------------------------------------
 GEOMETRYCOLLECTION M (LINESTRING M (1 2 3,3 4 2,9 4 3),POINT M (1 2 3))

Ein LineString mit dem Abschnitt zwischen den Takten 2 und 8, nach links versetzt

SELECT ST_AsText( ST_LocateBetween(
  ST_AddMeasure('LINESTRING (20 180, 50 20, 100 120, 180 20)', 0, 10),
  2, 8,
  20
));
------------------------------------------------------------------------
MULTILINESTRING((54.49835019899045 104.53426957938231,58.70056060327303 82.12248075654186,69.16695286779743 103.05526528559065,82.11145618000168 128.94427190999915,84.24893681714357 132.32493442618113,87.01636951231555 135.21267035596549,90.30307285299679 137.49198684843182,93.97759758337769 139.07172433557758,97.89298381958797 139.8887023914453,101.89263860095893 139.9102465862721,105.81659870902816 139.13549527600819,109.50792827749828 137.5954340631298,112.81899532549731 135.351656550512,115.6173761888606 132.49390095108848,145.31017306064817 95.37790486135405))