问题陈述:给定一条公交路线(定义为ln.the_geom的线串)和一组公交车站位置(pt1.the_geom,pt2.the_geom,... ptn.the_geom),将公交路线划分为公交车站之间的分段。我正在使用两个postgis函数
ST_line_substring(ln.the_geom,ST_line_locate_point
ln.the_geom,pt1.the_geom),ST_line_locate_point(ln.the_geom,pt2.the_geom))
如果公交路线没有重叠部分,则上述方法效果很好。但是,如果有重叠的部分,则ST_line_locate_point会将点对齐到线串的另一端。例如:公共汽车从A到B行驶,循环成圈,然后从B到A行驶。“ A到B”和“ B到A”是平行的路线,所有点都重叠。如果是公交车站P1和P2,则将P2映射到点P2'(相反方向)。在这种情况下,该段提取错误(其中包括额外的段)。
如何解决这样的问题?重叠的公交路线可以在路线的任何部分发生...
有没有一种方法可以识别公交路线的终点并将封闭的线串分成任一方向的一条线?这样,您将不再有重叠的细分。例如,您可以找到直线上最远的点,然后使用该点将直线分成两个方向。
—
拉斐尔2014年
这是一个老问题,但是,看起来您需要开始并设置截面,与点数据集合并,并删除起始点顺序大于终点的任何截面。这有意义吗?
—
豪尔赫·桑兹
您能否提供给定公交路线的几何图形WKT?
—
kttii