12 March 2022, FOSSGIS OSM-Samstag
Dustin Carlino & Michael Droogleever
From left to right:
[
{ type=sidewalk, surface_color=black },
{ curb },
{ type=cycle, direction=forward, surface_color=red, est_width=1.5 },
{ curb },
{ type=travel, surface_color=black, direction=forward, allow taxi },
{ type=travel, surface_color=black, direction=backward, allow taxi },
{ curb },
{ type=cycle, direction=forward, surface_color=red, est_width=1.5 },
{ curb },
{ type=sidewalk, surface_color=black },
]
Web demo: https://a-b-street.github.io/osm2lanes
https://www.openstreetmap.org/way/22760280
{
"Ok": {
"road": {
"lanes": [
{
"type": "travel",
"direction": "backward",
"designated": "bicycle",
"width": 2.0
},
{
"type": "separator",
"markings": [
{
"style": "solid_line",
"width": 0.2,
"color": "white"
}
]
},
{
"type": "travel",
"direction": "backward",
"designated": "motor_vehicle",
"width": 3.5
},
{
"type": "separator",
"markings": [
{
"style": "dotted_line",
"width": 0.2,
"color": "white"
}
]
},
{
"type": "travel",
"direction": "forward",
"designated": "motor_vehicle",
"width": 3.5
},
{
"type": "separator",
"markings": [
{
"style": "solid_line",
"width": 0.2,
"color": "white"
}
]
},
{
"type": "travel",
"direction": "forward",
"designated": "bicycle",
"width": 2.0
}
],
"highway": {
"highway": {
"Classified": "Secondary"
},
"lifecycle": "Active"
}
},
"warnings": [
"unimplemented: access, bicycle=designated"
]
}
}
osm2lanes
access=*
per lane)lanes2osm
osm2lanes
lanes2osm
https://github.com/a-b-street/osm2lanes/blob/main/data/tests.yml
unsupported: cycleway=* with any cycleway:* values
bicycle = designated
cycleway = lane
cycleway:left = separate
cycleway:right = lane
highway = secondary
lanes = 4
lanes:backward = 2
lanes:forward = 2
lcn = yes
maxheight = default
maxspeed = 25 mph
name = Dexter Avenue North
oneway = no
surface = paved
not all data is right or wrong, usually it is missing
the data consumer wants to know what lane data was tagged and what was a guess?
this is a generic library
https://www.youtube.com/watch?v=LatorN4P9aA
we need a healthy combination of:
osm2lanes
Most implementation is in Rust, but Rust is not too hard to learn.
Try one of the good first issues!
Web interface: https://a-b-street.github.io/osm2lanes/
osm2lanes
Futurehttps://github.com/a-b-street/osm2lanes/blob/main/web/index.html