в array собирать не надо, можно прямо в подзапросе выпуклую оболочку от коллекта посчитать
collect там только чтобы проверить а попадают ли геометрии дорог вообще в границы города и выбрать только нужное, поскольку в базе весь регион. я подумал что правильнее будет всё же вынести уже проверку а рядо лм дороги полученные
да, можно заменить то что внутри ST_Intersects на фиксированное значение, но хотелось более универсальный запрос сделать, чтобы удобнее было выборки делать.