我是postgis的新手,我正在尝试消除线串,在同一层中给出两个初始点,起点和终点(几何类型是线串) . 这种线串代表道路,河流,地下管道......等等 .
使用名为'length3d'的postgis函数,我可以测量一行(表的一个记录),但我需要测量多个连续的行;像这个例子的东西(使用解释示例的下一个注释)
-
| S | - > Line Start point
-
| E | - >线 endpoints
-
@ - >排队
-
(s) - >用户起点
-
(e) - >用户终点
例:
|S|===@===@===(s)==|E-S|===@==@===@==|E-S|===@===@===(e)==@==|E|
线串格式:
LINESTRING(-6.366424 38.93301,-6.3625 38.938,-6.361 38.9572,-6.36158230284898 38.9397667955807,-6.36131118520776)
用户点可以位于组成该线的两个现有点之间 .
| S |到| E-S |是DB | E-S |的一条记录到| E-S |是其他记录和| E-S |到| E |是其他记录 .
How i can measure distance from (s) to (e)?
提前致谢!
1 回答
使用PL/pgSQL可以创建一个函数来测量路径的每个分量(从(s)到[E-S],从[E-S]到[E-S]等) .
您可以预处理,并创建一个临时线串(或多线串),表示(s)和(e)之间的线,然后直接使用
ST_Length3D
.