A popular data source for real-world routing applications is OpenStreetMap (OSM). This recipe shows you how to prepare OSM data for usage with pgRouting using the osm2po command-line tool to convert OSM data to an insert script for PostGIS. Finally, we will test the data import using the pgRoutingLayer plugin.
Download osm2po from http://osm2po.de and unpack the download. Note that osm2po requires Java to be installed on your machine.
You also need a pgRouting-enabled database to follow this recipe.
Additionally, you should have the pgRoutingLayer plugin installed and enabled because we will use this to test the OSM data import.
You can use the wake.pbf OSM file from our sample data, or download your own data from services such as http://download.geofabrik.de.
Open the command line to perform the following steps. If you are working on Windows, we recommend using the osgeo4W Shell:
osm2po folder and open osm2po.config in a text editor. Look for the following configuration line and remove the # at the beginning of the line to activate the pgRouting export:postp.0.class = de.cm.osm2po.plugins.postp.PgRoutingWriter
.pbf file to SQL. Adjust the file paths for your system, as follows:D:\osm2po-5.1.0>java -jar osm2po-core-5.1.0-signed.jar prefix=wake "C:\tmp\OSM_NorthCarolina\wake.pbf"
INFO Services started. Waiting for requests at http://localhost:8888/Osm2poService
wake) inside the osm2po folder. This contains a log file, which in turn provides a command-line template to import the OSM network to PostGIS:INFO commandline template:psql -U [username] -d [dbname] -q -f "D:\osm2po-5.1.0\wake\wake_2po_4pgr.sql"
.sql file into an existing database, as follows:D:\osm2po-5.1.0\wake>psql -U [username] -d cookbook -q -f D:\osm2po-5.1.0\wake\wake_2po_4pgr.sql
wake_2po_4pgr table: