OpenStreetMap: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
mNo edit summary
Brian Wilson (talk | contribs)
mNo edit summary
Line 5: Line 5:
=== Get the tool ===
=== Get the tool ===


This did not work very well for me
No build required, that's the Java JAR advantage! (You knew there was an advantage.)
  wget http://bretth.dev.openstreetmap.org/osmosis-build/osmosis-latest.zip
  wget http://bretth.dev.openstreetmap.org/osmosis-build/osmosis-latest.zip
  mkdir osmosis
  mkdir osmosis
Line 10: Line 12:
  unzip ../osmosis-latest.zip
  unzip ../osmosis-latest.zip


No build required, that's the Java JAR advantage! (You knew there was an advantage.)
This is what I ended up doing
git clone https://github.com/openstreetmap/osmosis.git
cd osmosis
./gradlew assemble


=== Set up the database ===
=== Set up the database ===


  createdb osmosis_us_west
  createdb osmosis_us_west
  echo "CREATE EXTENSION hstore; CREATE EXTENSION postgis;" | psql -U postgres
  echo "CREATE EXTENSION hstore; CREATE EXTENSION postgis;" | psql -U postgres $DB
  echo "ALTER TABLE osmosis_us_west OWNER TO osm" | psql -U postgres
  echo "ALTER TABLE osmosis_us_west OWNER TO osm" | psql -U postgres
  cd script
  cd script
  psql -U postgres osmosis_us_west -f pgsimple_schema_0.6.sql  
  psql -U postgres osmosis_us_west -f pgsnapshot_schema_0.6.sql  


=== Get the data ===
=== Get the data ===

Revision as of 05:07, 10 October 2013

Use osmosis

Let the data just seep into PostGIS through a semipermeable membrane with osmosis, or use the command line tool of the same name.

Get the tool

This did not work very well for me No build required, that's the Java JAR advantage! (You knew there was an advantage.)

wget http://bretth.dev.openstreetmap.org/osmosis-build/osmosis-latest.zip
mkdir osmosis
cd osmosis
unzip ../osmosis-latest.zip

This is what I ended up doing

git clone https://github.com/openstreetmap/osmosis.git
cd osmosis
./gradlew assemble

Set up the database

createdb osmosis_us_west
echo "CREATE EXTENSION hstore; CREATE EXTENSION postgis;" | psql -U postgres $DB
echo "ALTER TABLE osmosis_us_west OWNER TO osm" | psql -U postgres
cd script
psql -U postgres osmosis_us_west -f pgsnapshot_schema_0.6.sql 

Get the data

Get the data for the western United States

wget http://download.geofabrik.de/north-america/us-west-latest.osm.pbf

Run osmosis to load the PBF file into your PostGIS server. I do it thusly

# Put TEMP files somewhere with lots of space
mkdir tmp
JAVACMD_OPTIONS="-Djava.io.tmpdir=tmp" \
./osmosis -v --read-pbf us-west-latest.osm.pbf --write-pgsql user=osm_reader database=osmosis_us_west

Or use the osm2pgsql tool

Using excellent instructions from http://bostongis.com/ In particular, the Almost idiot's guide...

First, get the data from CloudMade for California and Oregon, or if you have LOTS of time and space get the whole planet.

mkdir /green/GISData/OSM && cd /green/GISData/OSM
wget http://downloads.cloudmade.com/americas/northern_america/united_states/california/california.osm.bz2
wget http://downloads.cloudmade.com/americas/northern_america/united_states/oregon/oregon.osm.bz2

Create a lovely Postgis database and spatially enable it and add hstore.

Build osm2pgsql

No need for any special configuration options, just build and install!

sudo apt-get install libxml2-dev libbz2-dev
cd ~/src/GIS
git clone https://github.com/openstreetmap/osm2pgsql.git
cd osm2pgsql
./autogen.sh
./configure
sed -i 's/-g -O2/-O2 -march=native -fomit-frame-pointer/' Makefile
make
sudo make install

Using osm2pgsql

# bellman
osm2pgsql oregon.osm.bz2 -d osm -U postgres -S /green/bwilson/src/GIS/osm2pgsql/default.style --hstore
osm2pgsql california.osm.bz2 --append -d osm -U postgres -S /green/bwilson/src/GIS/osm2pgsql/default.style --hstore
# dart
createdb -U postgres osm
createuser -U postgres osm
psql -U postgres osm 
CREATE EXTENSION hstore;
CREATE EXTENSION postgis;

# The western US - I had to increase the node cache size
osm2pgsql us-west-latest.osm.pbf -d osm -U osm -S ~/src/GIS/osm2pgsql/default.style --hstore -C 10000
# The whole planet - I RUN OUT OF MEMORY!! Dang.
osm2pgsql planet-latest.osm -d osm -U osm -S ~/src/GIS/osm2pgsql/default.style --hstore -C 15000

On my little server Bellman, it took 628 seconds to load the Oregon data and it took 3302 seconds to load California. Conclusion: California is much bigger, in fact there is probably room for me there in Nevada county.

I just loaded Oregon data onto my much snazzier server at work and it took 183 seconds.

Nice to have some data in my PostGIS server.

Now I need to get it showing up in Geoserver