ST_FilterByM — Tar bort hörn baserat på deras M-värde
geometry ST_FilterByM(
geometry geom, double precision min, double precision max = null, boolean returnM = false)
;
Filtrerar bort vertexpunkter baserat på deras M-värde. Returnerar en geometri med endast vertexpunkter som har ett M-värde som är större än eller lika med min-värdet och mindre än eller lika med max-värdet. Om argumentet max-värde utelämnas beaktas endast min-värdet. Om det fjärde argumentet utelämnas kommer m-värdet inte att finnas med i den resulterande geometrin. Om den resulterande geometrin har för få vertexpunkter kvar för sin geometrityp kommer en tom geometri att returneras. I en geometrisamling kommer geometrier som inte har tillräckligt med punkter att utelämnas i tysthet.
Denna funktion är främst avsedd att användas tillsammans med ST_SetEffectiveArea. ST_EffectiveArea anger den effektiva arean för en vertex i dess m-värde. Med ST_FilterByM är det möjligt att få en förenklad version av geometrin utan några beräkningar, bara genom att filtrera
![]() |
|
Det finns en skillnad i vad ST_SimplifyVW returnerar när inte tillräckligt många punkter uppfyller kriterierna jämfört med ST_FilterByM. ST_SimplifyVW returnerar geometrin med tillräckligt många punkter medan ST_FilterByM returnerar en tom geometri |
![]() |
|
Observera att den returnerade geometrin kan vara ogiltig |
![]() |
|
Denna funktion returnerar alla dimensioner, inklusive Z- och M-värden |
Tillgänglighet: 2.5.0
En linestrings är filtrerad
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)