@@ -56,26 +56,28 @@ fn parse_speed(max_speed: &str, highway: &str) -> usize {
56
56
/// resolves the int value from a dirty string that can't be resolved by default parsing
57
57
fn resolve_max_speed ( s : & str ) -> Result < usize , & str > {
58
58
match s {
59
+ "DE:motorway" => return Ok ( 120 ) ,
59
60
"DE:rural" | "AT:rural" => return Ok ( 100 ) ,
60
61
"DE:urban" | "AT:urban" | "CZ:urban" => return Ok ( 50 ) ,
61
- "DE:walk" | "walk" | "Schrittgeschwindigkeit" => return Ok ( 7 ) ,
62
+ "maxspeed=50" => return Ok ( 50 ) ,
63
+ "50;" | "50b" => return Ok ( 50 ) ,
62
64
"DE:living_street" => return Ok ( 30 ) ,
63
- "DE:motorway" => return Ok ( 120 ) ,
64
65
"30 kph" => return Ok ( 30 ) ,
65
66
"zone:maxspeed=de:30" => return Ok ( 30 ) ,
66
67
"DE:zone:30" => return Ok ( 30 ) ,
67
- "50;" | "50b" => return Ok ( 50 ) ,
68
- "10 mph" => return Ok ( 10 ) ,
69
- "5 mph" => return Ok ( 7 ) ,
70
- "maxspeed=50" => return Ok ( 50 ) ,
71
68
"DE:zone30" => return Ok ( 30 ) ,
72
69
"30 mph" => return Ok ( 30 ) ,
73
70
"20:forward" => return Ok ( 20 ) ,
71
+ "10 mph" => return Ok ( 10 ) ,
72
+ "5 mph" => return Ok ( 7 ) ,
73
+ "DE:walk" | "walk" | "Schrittgeschwindigkeit" => return Ok ( 7 ) ,
74
74
_ => return Err ( "none" ) ,
75
75
} ;
76
76
}
77
77
78
78
/// approximates the speed limit based on given highway type
79
+ // infos from https://wiki.openstreetmap.org/wiki/Key:highway
80
+ // TODO check if more types can be added
79
81
fn aproximate_speed_limit ( s : & str ) -> usize {
80
82
match s {
81
83
"motorway" => return 120 ,
@@ -88,10 +90,13 @@ fn aproximate_speed_limit(s: &str) -> usize {
88
90
"tertiary" | "tertiary_link" => return 50 ,
89
91
"unclassified" => return 40 ,
90
92
"residential" => return 30 ,
91
- "service" => return 10 ,
92
- "living_street" => return 50 ,
93
- "walk" => return 3 ,
94
- _ => return 50 ,
93
+ "track" | "service" => return 10 ,
94
+ "living_street" => return 7 ,
95
+ "path" | "walk" | "footway" => return 4 ,
96
+ _ => {
97
+ // println!("speed limit {:?}", s);
98
+ return 50 ;
99
+ }
95
100
}
96
101
}
97
102
0 commit comments