ST_3DInterpolatePoint — Returnerar det interpolerade måttet för en geometri som ligger närmast en punkt i 3D.
float8 ST_3DInterpolatePoint(geometry linear_geom_with_measure, geometry point);
Returnerar det interpolerade måttvärdet för en linjär ZM-geometri vid den plats som ligger närmast den angivna punkten, med 3D-avstånd (XYZ) för projektionen. Använd den här funktionen när geometrin har betydande Z-variation, till exempel flygbanor, där ST_InterpolatePoint skulle ge felaktiga resultat genom att ignorera Z-dimensionen.
|
|
|
Linjen måste ha både Z- och M-dimensioner. Punkten bör ha en Z-dimension. |
Tillgänglig sedan: 3.7.0
Denna funktion stöder 3d och kommer inte att tappa z-index.
Det här exemplet interpolerar på en linje som stiger diagonalt i Z med en punkt vid 3D-mittpunkten.
SELECT ST_3DInterpolatePoint( 'LINESTRING ZM (0 0 0 0,10 0 10 20)', 'POINT Z (5 0 5)');
10
Det här exemplet använder en lodrät linje med noll XY-utsträckning, där 3D-projektion fungerar men 2D-projektion inte gör det.
SELECT ST_3DInterpolatePoint( 'LINESTRING ZM (0 0 0 0,0 0 10 100)', 'POINT Z (5 5 5)');
50