Próbuję ustalić, gdzie drogi się przecinają, i wskazać punkt na tym skrzyżowaniu, podając liczbę dróg, które tworzą skrzyżowanie.
Zastanawiałem się, czy istnieje jakiś sposób wykorzystania ST_NumPoints, aby to osiągnąć, ale nie do końca wiem, co powinienem zrobić. Zrobiłem to, aby utworzyć tabelę punktów, w których linie przecinają się przy użyciu następującego kodu:
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);
Jeśli uruchomię to na próbce dróg, otrzymam następującą siatkę punktów (drogi są pokazane dla ilustracji):
Jeśli sprawdzę jeden z punktów, zauważę, że na sobie ustawionych jest wiele punktów:
GID tutaj jest identyfikatorem drogi, ale nie rozumiem, dlaczego istnieje wiele punktów. Rozumiem, że 4 punkty są liczone za centralne skrzyżowanie dróg, ale jest tutaj 12 punktów. Czy istnieje lepszy sposób na wykonanie tego obliczenia w PostGIS?