Ich versuche zu identifizieren, wo sich Straßen kreuzen, und einen Punkt an dieser Kreuzung zu machen, wobei die Anzahl der Straßen, die die Kreuzung bilden, aufgelistet wird.
Ich habe mich gefragt, ob es eine Möglichkeit gibt, ST_NumPoints zu verwenden, um dies zu erreichen, aber ich kann nicht genau herausfinden, was ich tun soll. Ich habe eine Punktetabelle erstellt, in der sich die Linien mit dem folgenden Code schneiden:
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);
Wenn ich dies auf einem Beispiel von Straßen laufen lasse, erhalte ich das folgende Punktraster (die Straßen werden zur Veranschaulichung gezeigt):
Wenn ich einen der Punkte inspiziere, sehe ich, dass viele Punkte übereinander gestapelt sind:
Die GID ist hier der Straßenausweis, aber ich verstehe nicht, warum es so viele Punkte gibt. Ich kann verstehen, dass 4 Punkte für eine zentrale Straßenkreuzung gezählt werden, aber hier sind 12 Punkte aufgeführt. Gibt es eine bessere Möglichkeit, diese Berechnung in PostGIS durchzuführen?