我有以下查询,它与表进行自连接并输出线之间的所有交点。
insert into road_intersection
select nextval('road_intersection_id_seq'), a.road_id, b.road_id, st_intersection(a.road, b.road), st_centroid(st_intersection(a.road, b.road))
from polygon_road a, polygon_road b
where st_intersects(a.road, b.road) AND a.road_id!=b.road_id
但是它会为每个交叉点输出重复值,因为它会计算每条道路的交叉点。例如:
70;71;POINT_OF_INTERSECTION
71;70;POINT_OF_INTERSECTION
70
AND71
都是id
两条不同道路的值。如您所见,对于相同的两条道路,交叉点已计算了两次。
有什么建议可以解决这个问题并且只计算一个交点?