名称

ST_LocateBetween — 返回与测量范围匹配的几何部分。

概要

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

说明

返回一个几何(集合),其中包含与指定测量范围(包括)匹配的输入测量几何的部分。

如果提供了 offset,则结果将向左或向右偏移输入线指定的距离。正偏移量将向左,负偏移量将向右。

裁剪非凸多边形可能会生成无效几何。

语义由 ISO/IEC 13249-3 SQL/MM 空间 标准指定。

可用性:1.1.0,旧名称为 ST_Locate_Between_Measures。

已更改:2.0.0 - 在之前的版本中,此函数称为 ST_Locate_Between_Measures。

已增强:3.0.0 - 添加了对多边形、TIN、三角形的支持。

此函数支持 M 坐标。

此方法实现了 SQL/MM 规范。

SQL-MM IEC 13249-3:5.1

示例

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))

线段,测量范围为 2 到 8,向左偏移

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))

另请参阅

ST_LocateAlongST_LocateBetweenElevations