prochitecture / blosm

GNU General Public License v3.0
11 stars 3 forks source link

Conditions for a carriageway without a sidewalk #53

Open vvoovv opened 1 year ago

vvoovv commented 1 year ago

This issue is used to discuss on how to detect that a street section does not have a sidewalk on the left or on the right.

(1) All street segments that constitute a roundabout should not have a sidewalk on the side pointing to the internal part of the roundabout.

(2) A pair of street sections that originate or end at the neighbor connectors of an intersection. The angle between the way-segments that originate or end at the intersection should not exceed a given threshold. image

polarkernel commented 1 year ago

(1) All street segments that constitute a roundabout should not have a sidewalk on the side pointing to the internal part of the roundabout.

I think this shouldn't be too hard. Collecting affected ways by their tags and finding close groups with a common possible center should do it. Maybe it could be a problem that the dimensions of the roundabouts can be very different. Important tags are:

    junction=roundabout
    highway=mini_roundabout
    junction=circular
    highway=turning_circle

(2) A pair of street sections that originate or end at the neighbor connectors of an intersection. The angle between the way-segments that originate or end at the intersection should not exceed a given threshold.

This task is much harder. Let me give an example from the scene _milano01.osm (there is still an error near the upper left corner, I know, but it can serve as an example anyway):

Not having a sidewalk on the left, the right, or both sides does not depend only on the angle. In this scene, for example, there are small equilateral triangles, that have a large angle but a small area.

Finding the angles at the intersections could easily be done using the connectors of the intersection area. There, the angles of the polygon and the IDs of the streets are collected. Finding the area between the ways can be very tedious.