I wanted to select all nodes where footways and roads intersected so I could tag them all with
highway=crossing. I already found my solution but I decided to put it here for future me and others.
P.S. Forgot to clarify, again - but you shouldn’t tag everything as a
highway=crossing automatically! I needed this for OpenGeofiction, a fictional map running on OSM’s tech; where I can put crossings just about anywhere I want.
This sounds like mechanical edit and is not a good idea. You don’t have to tag things that you can recognise automatically.
My understanding is that highway=crossing is only for designated crossings, that is where there is some sort of sign, signal, or pavement marking. There is little value in adding this tag on every node where a road and footpath cross, we already know, based on the geometry, that the two intersect at the given node.
type:node ways:2 -highway:crossing (child (highway=footway) & child (-highway~"(footway|steps|pedestrian)"))
There is the value crossing=unmarked floating around with the mere use of 1.929 million per taginfo. No idea if routers have a special awareness where foot/road crossings without an explicit crossing tag. Certainly I would be tempted to cut up the footway for the width of the road and tag it as an unmarked crossing if there are no zebra stripes or other features to highlight the point as formal foot crossing.