ST_LocateBetween — 傳回幾何圖形中符合測量範圍的部分。
geometry ST_LocateBetween(
geometry geom, float8 measure_start, float8 measure_end, float8 offset = 0)
;
傳回一個幾何圖形(集合),其中包含輸入的測量幾何圖形中符合指定測量範圍(包含)的部分。
如果提供 offset
,結果會依指定的距離偏移到輸入線的左側或右側。正偏移量將向左,負偏移量將向右。
剪裁非凸 POLYGON 可能會產生無效的幾何圖形。
語義由 ISO/IEC 13249-3 SQL/MM Spatial 標準指定。
可用性:1.1.0 版本,舊名稱為 ST_Locate_Between_Measures。
變更:2.0.0 版本 - 在先前的版本中,此函數的名稱為 ST_Locate_Between_Measures。
增強:3.0.0 版本 - 新增對 POLYGON、TIN、TRIANGLE 的支援。
此函數支援 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))
一個 LineString,其測量值介於 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))