도로가 서로 교차하는 곳을 식별하고이 교차로에서 지점을 만들고 교차로를 형성하는 도로의 수를 나열하려고합니다.
ST_NumPoints 를 사용하여 이를 달성 할 수 있는 방법이 있는지 궁금 하지만, 내가해야 할 일을 알 수는 없습니다. 내가 한 것은 다음 코드를 사용하여 선이 교차하는 지점 테이블을 만드는 것입니다.
CREATE TABLE test_points as
SELECT
ST_Intersection(a.geom, b.geom),
a.gid
FROM
roads as a,
roads as b
WHERE
ST_Touches(a.geom, b.geom);
샘플을 도로에서 실행하면 다음과 같은 점 그리드가 표시됩니다 (도로는 그림으로 표시됨).
점 중 하나를 검사하면 서로 위에 많은 점이 쌓여 있음을 알 수 있습니다.
여기의 GID는 도로 ID이지만, 왜 많은 포인트가 있는지 이해할 수 없습니다. 중앙 도로 교차로에서 계산되는 4 개의 지점을 이해할 수 있지만 여기에 12 개의 지점이 있습니다. PostGIS에서이 계산을 수행하는 더 좋은 방법이 있습니까?