Estou tentando identificar onde as estradas se cruzam e fazer um ponto nesse cruzamento, com o número de estradas que formam o cruzamento listado.
Fiquei me perguntando se havia alguma maneira de usar ST_NumPoints para conseguir isso, mas não consigo entender o que deveria estar fazendo. O que fiz foi criar uma tabela de pontos em que as linhas se cruzam usando o seguinte código:
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);
Se eu executar isso em uma amostra de estradas, recebo a seguinte grade de pontos (as estradas são mostradas para ilustração):
Se eu inspecionar um dos pontos, vejo que há muitos pontos empilhados um sobre o outro:
O GID aqui é o ID da estrada, mas não entendo por que existem muitos pontos. Eu posso entender 4 pontos sendo contados para um cruzamento de estrada central, mas há 12 pontos listados aqui. Existe uma maneira melhor de realizar esse cálculo no PostGIS?