Name

ST_FilterByM — Entfernt Scheitelpunkte basierend auf ihrem M-Wert

Synopsis

geometry ST_FilterByM(geometry geom, double precision min, double precision max = null, boolean returnM = false);

Beschreibung

Filtert Scheitelpunkte auf der Grundlage ihres M-Werts heraus. Gibt eine Geometrie zurück, die nur Scheitelpunkte enthält, deren M-Wert größer oder gleich dem Min-Wert und kleiner oder gleich dem Max-Wert ist. Wenn das Argument max-value weggelassen wird, wird nur der min-Wert berücksichtigt. Wenn das vierte Argument weggelassen wird, wird der M-Wert nicht in der resultierenden Geometrie enthalten sein. Wenn die resultierende Geometrie zu wenig Scheitelpunkte für ihren Geometrietyp hat, wird eine leere Geometrie zurückgegeben. In einer Geometriesammlung werden Geometrien, die nicht genügend Punkte haben, einfach stillschweigend ausgelassen.

Diese Funktion ist hauptsächlich für die Verwendung in Verbindung mit ST_SetEffectiveArea gedacht. ST_EffectiveArea legt die effektive Fläche eines Scheitelpunkts in seinem m-Wert fest. Mit ST_FilterByM ist es dann möglich, eine vereinfachte Version der Geometrie ohne jegliche Berechnungen zu erhalten, einfach durch Filtern

[Note]

Es gibt einen Unterschied zwischen ST_SimplifyVW und ST_FilterByM, was ST_SimplifyVW zurückgibt, wenn nicht genügend Punkte die Kriterien erfüllen. ST_SimplifyVW gibt die Geometrie mit genügend Punkten zurück, während ST_FilterByM eine leere Geometrie zurückgibt.

[Note]

Beachten Sie, dass die zurückgegebene Geometrie ungültig sein kann

[Note]

Diese Funktion liefert alle Dimensionen, einschließlich der Z- und M-Werte

Verfügbarkeit: 2.5.0

Beispiele

Eine gefilterte Linie

SELECT ST_AsText(ST_FilterByM(geom,30)) simplified
FROM (SELECT  ST_SetEffectiveArea('LINESTRING(5 2, 3 8, 6 20, 7 25, 10 10)'::geometry) geom) As foo;

result

         simplified
----------------------------
 LINESTRING(5 2,7 25,10 10)