Я пытаюсь определить, где дороги пересекаются друг с другом, и выделить точку на этом перекрестке, указав количество дорог, которые образуют перекресток.
Мне было интересно, есть ли какой-нибудь способ использования 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?