Yeah, that’s how I build my queries when adding more countries. Each country’s data isn’t necessarily at the same level (not all countries adhere to an admin level organization of ‘Region = 4’ and ‘City = 8’), so I test different queries with the Overpass API until I find the best admin level matches.
Sounds like I just haven’t figured out how to further filter out non-streets… I also don’t want to filter too much - like I mentioned that in my previous post about how some things that are ‘highway’ aren’t tagged that way.
I’m at least assuming this is possible, because it’s definitely possible for a city to exist in OSM but not be accessible for my needs. An example of this is the recently requested city Iași, Romania. You can see it in Google Maps:
But if you search for it via Nominatim, you get two results…
- City: http://nominatim.openstreetmap.org/details.php?place_id=319899
- State: http://nominatim.openstreetmap.org/details.php?place_id=127949085
I can’t use the city version, because it’s a ‘node’. If you search ‘OSM:’ on that page, you’ll see where it notes that.
If you search ‘OSM:’ on the state version, you can see how it’s a ‘relation’. That’s the only type of data I can use from OSM, because that’s the only type that holds the street data - I’m not aware of a way to search for streets within a node.
So, my logic is that if entire cities aren’t completely categorized then it’s probably pretty likely that there are streets that aren’t categorized correctly as well.
That’s why I collect ‘too much’ (streets, as well as things that might not be streets) … I figure I might be collecting data that isn’t properly categorized as a street - stuff that I wouldn’t have received if I had a tighter query that was ignoring things that are definitely not streets.
There’s a lot that I don’t know about OSM, though. Maybe there’s a better answer out there that I’m not aware of yet.