Road map tiles from Ohio government data

Hi, I used Mapnik to generate raster map tiles off of data from ODOT that I wanted to share. I know fixing data from TIGER is a nationwide effort, but this data from Ohio looked really useful and has helped me find and fix many name mistakes so far. Please take a look!

View the tiles using Leaflet

Imagery URL: tms[19]:https://tiles.mblaine.com/ohio/{zoom}/{x}/{y}.png

Data source (Under “Roadway Information” - “Road Inventory”)

Key:

The map includes markers where road names begin and end. They’re yellow and purple for the sake of contrast. The angled ones are where one name ends, and the straight ones are for cases of only two roads connecting but not at an intersection.

The data isn’t perfect though. My goal was to make it easier to see when that isn’t the case. In the below example, all of the metadata is on one carriageway of US-33 and not the other. Looking at Bing, each carriageway is actually two lanes. And those two lanes are 24 feet wide.The 4’ inside shoulder and 8’ outside shoulder does appear correct for both carriageways though.

Another example is in Plain City, where it has all the side streets as 35 mph and unpaved when they’re really asphalt and mostly 25 mph based on Bing Streetside.

Here’s what ODOT’s map viewer looks like. You have to click on each road to view all of its fields.

Then the same location as I rendered it. A bit crowded, but I generated up to zoom level 19 so it’s possible to still see things when all the text is overlapping…

Same area, max zoom:

Last few notes off the top of my head:

  • Physical widths are all in feet and the roads that have them have names in black with a yellow outline.
  • The middle width number is the carraigeway. The other two numbers are for the shoulders, if defined for that road.
  • Shoulder widths are blank where not specified, and displayed as just an apostrophe.
  • If the physical road widths are useful to anyone, 100% of them still need to be double checked before using them. Sometimes the width will be for more than one parallel carriageway, and sometimes the shoulder will be doubled or otherwise seem to represent more than the actual paved shoulder.
  • Every road has a route number of some kind, displayed below its name at zoom 16 and above. The five digit municipal (MR) and township routes (TR) are most likely not visible on road signs anywhere.
  • I included the speed limit and surface of each road along its edges as text to save needing to look at the key.
  • This data was last updated by ODOT three weeks ago on June 20, 2024.

Surface types
Here is how I interpreted ODOT’s road surface type codes:

B - Brick bricks
C - Continuous reinforced concrete
D - Reinforced concrete concrete
E - Plain concrete concrete
G - Bituminous concrete asphalt
I - Chip seal on granular chipseal
K - Open graded bituminous asphalt
L - Chipseal or Micro chipseal
M - Gravel gravel
U - Unimproved unpaved
X - Right of way only impassible, not a road

Thank you all for your time. Please let me know if I could make this easier to look at in some way. And please feel free to use it, if you feel like it. Thank you!

One last screenshot, for the road :slight_smile:

7 Likes

Thanks for putting this layer together! If you’re OK with the traffic it would get, we should get it added to the editor layer index and JOSM’s equivalent so that mappers can discover it instead of the far inferior TIGER layer.

It depends on the county. In some counties, township road numbers are posted very prominently; in others, not at all. For example, here’s the intersection of Crane Township Highways 40 and 37 in Wyandot County, which TIMS gives a ROUTE_TYPE of TR and a ROUTE_NBR of 00037. Every road in this county has both a number and a name too, but road names aren’t signposted anywhere outside of Upper Sandusky.

Especially if a township road number is signposted, there should be a route relation, because the shields are so varied that a renderer needs the extra structure of a route relation’s tags to make any sense of the number.

On the other hand, municipal route numbers are merely inventory numbers, never signposted, so they would be unsigned_ref=* at best. It’s not even worth creating route relations for them, though some mappers have out of a mistaken assumption that they’re analogous to township road numbers. The one exception is Fremont, which has rigorously signposted its city routes:

Imgur
Imgur

1 Like

Thank you for your reply Minh! That is all very fascinating.
As far as bandwidth, I have it set up on AWS in a way where if nobody uses it, it should cost almost nothing. And if everybody uses it, then that’s great and totally worth it for me.

Just as long as nobody tries to scrape the whole thing or something. Not that anyone would. It’s basically a 33GB pmtiles file, I can share if someone ever cared.

That’s wonderful, thanks again for putting this together! Please take a look at the documentation for contributing the layer to the editor layer index and JOSM imagery index and holler if you need help with it, or you can leave an issue in the ELI repository’s issue tracker for someone to follow up. In the meantime, I’ve added a link to this thread to the “Ohio” page on the wiki.

1 Like

Thank you Minh! I’m looking at the format for the editor layer index, this is what I’ve come up with. Can you take a look at what I have?

For the license url, should I copy the screenshot you posted before (Imgur: The magic of the Internet) to the OSM wiki and link to it? Then for “permission_osm”, would it be implicit do think?

For start and end dates, every single linestring in the dataset is created and last modified February 9, 2024. Comparing this data to what I downloaded a couple of months ago dated June 2023, some counties had more updates than others. 3 counties had no changes. 38 counties had fewer than 20 changes. 20 counties had fewer than 100 changes. 14 counties had fewer than 1000 changes. 12 counties had 1k-5k changes. And finally Summit had over 10k modified linestrings between '23 and '24.

So it’s possible depending on which county it is, the data could be up to several years old.

Thanks!!

"id": "ODOT_TIMS_Road_Inventory",
"name": "Ohio Department of Transportation Road Inventory",
"description": "Ohio Department of Transportation: Transportation Information Mapping System (TIMS) Road Inventory published June 2024.",
"type": "tms",
"url": "https://tiles.mblaine.com/ohio/{zoom}/{x}/{y}.png",
"min_zoom": 0,
"max_zoom": 19,
"license_url": ???
"privacy_policy_url": "https://www.transportation.ohio.gov/help-center/privacy-notice-and-policies",
"permission_osm": ???
"icon": "https://dam.assets.ohio.gov/image/upload/transportation.ohio.gov/assets/Logo_Assets/ODOT_Zephyr-HORZ-RGB.png",
"i18n": true,
"country_code": "US",
"attribution": {
	"url": "https://gis.dot.state.oh.us/tims/About",
	"text": "Ohio Department of Transportation",
	"required": false
},
"start_date": "2024-02-09",
"end_date": "2024-02-09",
"category": "map",
"valid-georeference": true,
"overlay": true,
"default": false,
"tile-size": 256

Yes, it feels kind of clunky to link to an image hosted on Imgur. Hopefully it’s tied to @Korgi1’s account there so it won’t go away arbitrarily. Since ODOT TIMS is such a versatile resource, I suggest transcribing the permission to a new wiki page about using TIMS as a data source in general (linking to the original import proposal), and then linking to that page.

Yes, a public domain resource doesn’t have any requirements attached to it, so the permission is implicit.

Ideally the start_date and end_date properties would indicate our best understanding of the data’s vintage. It sounds like you have an upper bound (which could change?), but the lower bound is a total unknown, so I’d omit it if possible.

1 Like

I’ve created ODOT TIMS - OpenStreetMap Wiki
And uploaded File:ODOT TIMS Copyright.png - OpenStreetMap Wiki

1 Like

I created a pull request: Adding Ohio road inventory raster tile source by mblaine · Pull Request #2405 · osmlab/editor-layer-index · GitHub

And added to the JOSM wiki: ODOT (Ohio) Road Inventory {view}

Awesome, thanks! By the way, if you ever find that you need help keeping this tileset alive, reach out to the OSMUS Imagery Working Group or OSMF Operations Working Group – both organizations have the capability to host imagery for the mapping community.

1 Like