ฉันพยายามระบุว่าถนนตัดกันซึ่งกันและกันและหาจุดที่สี่แยกนี้ด้วยจำนวนถนนที่เป็นจุดตัดของรายการ

ฉันสงสัยว่ามีวิธีการใช้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 ที่นี่เป็นรหัสถนน แต่ฉันไม่เข้าใจว่าทำไมมีหลายจุด ฉันสามารถเข้าใจ 4 คะแนนที่นับเป็นจุดตัดถนนกลาง แต่มี 12 จุดที่ระบุไว้ที่นี่ มีวิธีที่ดีกว่าในการคำนวณใน PostGIS หรือไม่