Overpass request: Bridges, search the not preferred tagging


How to find situations of this not preferred tagging as query in Overpass-turbo?

Suitable, also for steps and crossings.

1 Like
[out:json][timeout:25];
way({{bbox}})[bridge][highway]->.all;
node(w.all)->.allpts;
way(bn.allpts)->.allconnected;
node.allpts(way_link.allconnected:3-);
foreach
{
  way.allconnected(bn)->.thisconnected;
  way.thisconnected[bridge]->.thisbridges;
  if ( (thisbridges.count(ways) >= 1) && (thisconnected.count(ways) - thisbridges.count(ways) >= 1) )
  {
    .thisconnected out geom;
  };
};

node(way_link: counts connected segments. This foreach{ filters out connections between bridges.

3 Likes

Thanks, a lot, a step further.

I was allready working with part of the code (way_link.bstreets:3-) but got many mismatches and not found situations.

A T-junction where the way is ongoing. So that the bridgeway was connected to a middle node of the ongoing way, there is no :3- this is counting endnodes of a way. I thought.
But you solved that!

That was many of my mismatches.

(way_link.bstreets:3-)
This also gave me, where the man_made=bridge is counted as a connection
If we could solve this in the code
This is correctly drawn in.


And other difficult thing is when a roadway split on a endnode of a bridge=yes , doing something with the angle of the lanes.
This is correct.
afbeelding

Such a angle is correctly found and wrong.

This makes code complecated.

For man_made=bridge , I forgot to filter in one of them after using a set way(bn.allpts)[highway]->.allconnected;
angle() in per_vertex() or per_member() doesn’t directly work for between 2 way … I’m not sure if building your own lstr() works, because pt( only seemed to accept numbers. Can’t evaluate a function to pass other coords to it.
You could try filtering them further in JOSM. I don’t know the MapCSS has such an angle function. At least you might be able to do some trigonometry from their coords to get the angle.

Solved, thanks.

These less, less situations. And often it could be drawn in better.

I was trying the same setup for footway crossings included the fix filter [highway] for other polygons like area:highway

[out:json][timeout:25];
way({{bbox}})["footway"="crossing"][highway]->.all;
node(w.all)->.allpts;
way(bn.allpts)[highway]->.allconnected;
node.allpts(way_link.allconnected:3-);
foreach
{
  way.allconnected(bn)->.thisconnected;
  way.thisconnected["footway"="crossing"]->.thiscrossings;
  if ( (thiscrossings.count(ways) >= 1) && (thisconnected.count(ways) - thiscrossings.count(ways) >= 1) )
  {
    .thisconnected out geom;
  };
};

Green circle: These are correct, because, drawn in on the exact place, only end nodes should be filtered and controlled.
These should be filtered out, because they are correct.

Orange circle:
Here, there are no footways drawn in so the footway crossing does not pass the cycleway, a half crossing is set. Footways could be drawn in.

afbeelding