I agree with Tim, OSM is a very good option for such kind of job. I've used it myself for routing applications with success. The pgRouting tutorial explains how to extract road segments for a specific region and import it to a database: http://workshop.pgrouting.org/chapters/osm2pgrouting.html Regards, Luís