Cincinnati Bike Map

From OpenStreetMap Wiki
Jump to navigation Jump to search
Cincinnati Bike Map (2014)

In September 2014, Nate Wessel published the Cincinnati Bike Map, a full-color cycle map of Cincinnati, Ohio, United States, based on OpenStreetMap data. A print run of 9,000 is being distributed locally. Unlike many urban cycle maps, which highlight a curated selection of "preferred" routes for cyclists, the Cincinnati Bike Map indicates objective road conditions for all roads, enabling cyclists to find routes that suit their particular needs. Map insets cover elevation changes, frequent uphill transit lines, and regional bike trails. The map won the student map and poster competition at the North American Cartographic Information Society annual meeting in October of 2014.



The main portion of the map covers 210 square miles (540 km2) of Hamilton County in Ohio and Kenton and Campbell counties in Kentucky. Streets are coded primarily by width, measured as the number of lanes=* in each direction of travel, and by speed, measured as the posted speed limit in miles per hour (maxspeed=*). Major streets and sets of streets which had no outlet accessible by foot or bicycle were given a degree of transparency. Other street features include traffic signals (highway=traffic_signals) and at-grade railroad crossings (railway=level_crossing). Stairs and service roads were included where they provided possible connections, as determined by Tarjan's algorithm (see below). Dead-ending stairs, service roads, and other minor paths were dropped from the map.

Elevation is coded in 50' steps from the level of the river and is shown more clearly on an inset map.

The regional trail map shows the Little Miami Scenic Trail and its connections in the Miami Valley bike trail system. Since publication, the trail to Piqua has been extended north to Bellefontaine.

Technical process

The basic map and its insets were designed in QGIS and laid out and processed with Inkscape and GIMP. The digital elevation model was stored and processed in GRASS. The high resolution DEM was downloaded from the USGS, and smoothed to eliminate unnecessary detail and maintain contiguity in the contours. Osm2pgsql brought the OSM data into PostGIS which was used for storing and processing all vector data. Osm2pgrouting was used to create an initial network graph based on bicycle-traversable streets (excluding motorways and the like). Dead-ending streets and neighbourhoods were then detected with a PHP/SQL implementation of Tarjan's algorithm. This divided the edges of the graph into sets of strongly connected components, from which the largest was chosen as the main road network, leaving the rest as dead-ends.

Street labelling was mostly done by QGIS, though some street labels and all other labels were hand-placed. Automatic labels were created by selecting the shortest given name=*, alt_name=*, or loc_name=* and further shortening that to remove any directional prefixes and/or road-type suffixes. Some names with meaningful directional prefixes, such as W. North Bend Rd. ("North Bend"), were retained manually in the preprocessing script and rendered by QGIS.

Residential and service roads with no speed limit given by OSM were defaulted to municipal default speed limits, but all highway=tertiary, highway=secondary and highway=primary roads were surveyed for speed limit signs which where then manually added to OSM with Potlatch. highway=trunk and highway=motorway, which are legally impassible by bike, did not need to be surveyed for speed limits and were not included in the graph.

The "Trails" inset was based on highway=cycleway paths. cycle route relations were not used.


External links