PostGIS测量多个线串

时间:2011-04-20 11:44:28

标签: postgis measurement measure

我是postgis的新手,我正在尝试消除线串,在同一层中给出两个初始点,起点和终点(几何类型是线串)。这种线串代表道路,河流,地下管道等。

使用名为'length3d'的postgis函数我可以测量一行(表的一个记录),但我需要测量多个连续的行;像这个例子的东西(使用解释示例的下一个注释)

  • | S | - >行起点
  • | E | - >线端点
  • @ - >点对点
  • (s) - >用户起点
  • (e) - >用户终点

示例:

|S|===@===@===(s)==|E-S|===@==@===@==|E-S|===@===@===(e)==@==|E|

Linestring格式:

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 |是其他记录。

我如何衡量(s)到(e)的距离?

提前致谢!

1 个答案:

答案 0 :(得分:1)

使用PL/pgSQL,您可以创建一个测量路径中每个分量的函数(从(s)到[E-S],从[E-S]到[E-S]等)。

您可以预处理,并创建一个临时线串(或多线串)来表示(s)和(e)之间的线,然后直接在其上使用ST_Length3D