The goal of Curvature is to find fun twisty roads to ride or drive on. Until now, Curvature looked only at the geometry of roads, their highway classification (motorway, primary, secondary, …, parking aisle, driveway), and their surface (paved/unpaved). While this has worked well overall there are many roads in the world that do zig and zag with sharp corners, but do so in dense urban areas with many conflict zones. Potential conflicts or collisions at intersections, with merging traffic streams, at pedestrian crossings, and along street-side parking require much concentration and can make these roads much less “fun” to ride than a road with the same geometry would be in a less urban environment. A sharp 90° corner on a rural road is a lot of fun to swoop through, the same geometry at an intersection with a stop sign or traffic signal is a delay.
To ensure that these urban zigs and zags don’t masquerade as fun roads, I’ve recently added a filtering stage to Curvature that zeros-out the curvature rating for 30 meters (~100 feet) in both directions from each conflict point along the roadway. By zeroing out curves near these conflict zones Curvature can avoid suggesting roads that really aren’t very “fun”.
Below is a list of the features that Curvature now looks for to avoid giving weight to potential conflict zones.
Point features (nodes):
Stop signs or all-way stop intersections, and yield signs. Curvature is specifically looking for the nodes on the highway that indicate stop position. Sometimes the actual signpost itself is additionally mapped at its physical location, but the signpost is not evaluated by Curvature.
Stop positions at signalized intersections.
Small roundabouts that can be driven over by large vehicles. These often have a significant amount of geometric deflection of the travel path for traffic-calming purposes, but care when merging negates the fun-factor.
Pedestrian crossings — it is safest to go slow and watch for pedestrians rather than focusing on cornering.
Speed bumps, rumble strips, pinch-points, and other sorts of traffic calming measures.
Linear features (ways):
Roundabouts and circulars have a high degree of directional change, but the care needed when merging negates the fun-factor.
If there is parking along the road, one needs to go slow and look for doors opening, vehicles pulling-out, etc.
Rumble strips, chicanes, and other linear versions of traffic-calming features.
As hoped, this new processing step of zeroing-out curvature values in conflict zones has a dramatic effect of the results in urban areas, but almost no effect on the results in more rural areas. A single stop sign on a rural road probably won’t affect its overall curvature value, but a stop every block in an urban area will drop an urban street below the threshold of being interesting.
Here are before and after examples of how this new filtering affect’s the Curvature map. This effect is most apparent in major urban areas.
Note: The zoomed-out map-tiles are still being regenerated over the course of the next month, so you will see the transition as you zoom in past level 9.
Boston has many federal and state highways that run to and through it, twisting and turning between former village centers that now make up the many down-towns of its metro area. With the new filter in place only the more “open road” portions stay highlighted.
The New York City area is similar, with many city streets that were showing up before because they jogged at odd angles. Now that all of the signalized and stop-signed intersections are eliminated, we see that the rest of the roadways are relatively straight:
Zooming out, we can see that looking only at road geometry, London and Toronto have many twisty roads in their city centers. After filtering out roundabouts, and intersections however, we are less apt to go hunting for fun roads to drive in these cities.
When looking at less-twisty roads, this effect is also visible. Below in the city of Pau, France we see how Curvature used to include roads that were mostly straight except for their roundabouts. Now that those are filtered out, there are fewer spurious entries in the database.
Nice improvement ! Thanks a lot