首頁
云原生數據庫 PolarDB
云原生數據庫PolarDB PostgreSQL版
時空引擎(GanosBase)
Geometry SQL參考
線性參考
ST_LineInterpolatePoint
在LineString上指定位置插入點對象,并返回該點。
語法
geometry ST_LineInterpolatePoint(geometry aLinestring , float8 aFraction);
geography ST_LineInterpolatePoint(geography aLinestring , float8 aFraction);
參數
參數名稱 | 描述 |
aLinestring | 目標LineString對象。 |
aFraction | 插入點位于該線段的百分比,是一個從0到1的浮點值。 |
描述
該函數支持3D對象,并且不會刪除Z坐標。
該函數支持M坐標。
使用地理坐標系時會根據球面距離進行計算。
示例
計算給定線段的中點坐標:
SELECT ST_AsText(ST_LineInterpolatePoint(geom, 0.5)) FROM (SELECT 'LINESTRING(0 0,2 2)'::geometry as geom) As test; st_astext ------------ POINT(1 1) (1 row) SELECT ST_AsText(ST_LineInterpolatePoint(geog, 0.5)) FROM (SELECT 'LINESTRING(0 0,2 2)'::geography as geog) As test; ------------------------------------------ POINT(0.99969732796684 1.00015638159834)
獲取線上距離某個Geometry對象最近的點:
SELECT ST_AsText(ST_LineInterpolatePoint(geom, ST_LineLocatePoint(geom, 'POINT(1 1)'::geometry))) FROM (SELECT 'LINESTRING(0 0,0 2)'::geometry As geom) As test; st_astext ------------ POINT(0 1) (1 row) -- geography SELECT ST_AsText(ST_LineInterpolatePoint(geog, ST_LineLocatePoint(geog, 'POINT(1 1)'::geography))) FROM (SELECT 'LINESTRING(0 0,0 2)'::geography As geog) As test; --------------------------- POINT(0 1.00015229710421)
文檔內容是否對您有幫助?