5
根据点将线划分为不重叠的子集
给定一张具有线几何形状的表,并在单独的表中捕捉到该线的一个或多个点,我想在每条线与一个点相交的位置处使用一个或多个相交点来分割每条线。 例如,一条直线L沿直线几何顺序依次具有三个相交点A,B和C。我想将L作为四个不同的几何返回:从L的起点到A,沿着L的从A到B,沿着L的从B到C,以及从C到L的终点。 过去,我经常使用shape来完成此任务,这是一个线性引用问题(http://sgillies.net/blog/1040/shapely-recipes/)。但是,在这种情况下这是不切实际的,因为它有数百万条线和点。相反,我正在寻找使用PostgreSQL / PostGIS的解决方案。 注意,点被限制在一条线上。此外,一个点可以有效地位于一条线的起点或终点,在这种情况下,无需拆分该线(除非存在其他与同一条线的起点或终点不一致的点)。子线需要保留其方向和属性,但是点要素的属性无关紧要。