Mapnik/Installation on Fedora 18

From OpenStreetMap Wiki
Jump to: navigation, search
Available languages — Mapnik/Installation on Fedora 18
Afrikaans Alemannisch aragonés asturianu azərbaycanca Bahasa Indonesia Bahasa Melayu Bân-lâm-gú Basa Jawa Baso Minangkabau bosanski brezhoneg català čeština dansk Deutsch eesti English español Esperanto estremeñu euskara français Frysk Gaeilge Gàidhlig galego Hausa hrvatski Igbo interlingua Interlingue isiXhosa isiZulu íslenska italiano Kiswahili Kreyòl ayisyen kréyòl gwadloupéyen Kurdî latviešu Lëtzebuergesch lietuvių magyar Malagasy Malti Nederlands Nedersaksies norsk bokmål norsk nynorsk occitan Oromoo oʻzbekcha/ўзбекча Plattdüütsch polski português português do Brasil română shqip slovenčina slovenščina Soomaaliga suomi svenska Tiếng Việt Türkçe Vahcuengh vèneto Wolof Yorùbá Zazaki српски / srpski беларуская български қазақша македонски монгол русский тоҷикӣ українська Ελληνικά Հայերեն ქართული नेपाली मराठी हिन्दी অসমীয়া বাংলা ਪੰਜਾਬੀ ગુજરાતી ଓଡ଼ିଆ தமிழ் తెలుగు ಕನ್ನಡ മലയാളം සිංහල ไทย မြန်မာဘာသာ ລາວ ភាសាខ្មែរ ⵜⴰⵎⴰⵣⵉⵖⵜ አማርኛ 한국어 日本語 中文(简体)‎ 吴语 粵語 中文(繁體)‎ ייִדיש עברית اردو العربية پښتو سنڌي فارسی ދިވެހިބަސް

Tested at

  • July 3, 2013

Installation

  • Install and run the database server if you haven't done this before (as root)
yum install postgresql-server
postgresql-setup initdb
systemctl start postgresql

Optionally set the service to start automatically

systemctl enable postgresql
  • Install the postgres postgis extension (as root)
    yum install postgis
  • Setup the database

optionally, set password for the database user (as root)

    passwd postgres

otherwise run "su - postgres" as root

su - postgres
createdb -EUNICODE gis
createuser -S -D -R apache
echo "GRANT ALL ON SCHEMA PUBLIC TO apache;" | psql gis
psql gis < /usr/share/pgsql/contrib/postgis-64.sql
psql gis < /usr/share/pgsql/contrib/spatial_ref_sys.sql
echo "grant all on geometry_columns to apache;" | psql gis
echo "grant all on spatial_ref_sys to apache;" | psql gis

Note - on a 32 bit system change postgis-64.sql to postgis.sql on the 6th line above.

  • Create your OSM working dir and checkout osm2pgsql project
mkdir ~/osm
cd ~/osm
svn co http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/
cd osm2pgsql
wget http://planet.king-nerd.com/planet-090617.osm.bz2
  • Import the map.osm into the gis database
cp -r ~/osm/osm2pgsql /tmp
cp ~/osm/map.osm /tmp

./osm2pgsql -S ./default.style ../map.osm
  • Install mapnik
yum install mapnik mapnik-devel mapnik-python proj-epsg
  • Checkout mapnik data from svn
cd ~/osm
svn co http://svn.openstreetmap.org/applications/rendering/mapnik
  • Download the Coastline data
wget http://tile.openstreetmap.org/world_boundaries-spherical.tgz
wget http://tile.openstreetmap.org/processed_p.tar.bz2
wget http://tile.openstreetmap.org/shoreline_300.tar.bz2
  • Files required since June 2010
wget http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip
wget http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_boundary_lines_land.zip
  • Unpack them up properly
cd ~/osm/mapnik
tar xvzf world_boundaries-spherical.tgz
tar xvjf processed_p.tar.bz2 -C world_boundaries
tar xvjf shoreline_300.tar.bz2 -C world_boundaries
unzip ne_10m-populated-places.zip -d world_boundaries
unzip ne_110m-admin-0-boundary-lines_land.zip -d world_boundaries
  • Setup the mapnik environment
cd ~/osm/mapnik
cp archive/set-mapnik-env .
vim set-mapnik-env
change "export MAPNIK_DBNAME='osm'" to 'gis'
change "export MAPNIK_DBUSER=`whoami`" to 'apache'
  • Test mapnik
   cp ~/osm/mapnik/generate_tiles.py ~/osm/mapnik/z0_generate_tiles.py
   vim ~/osm/mapnik/z0_generate_tiles.py
   #-------------------------------------------------------------------------
   #
   # Change the following for different bounding boxes and zoom levels
   #
   # Start with an overview
   # World
   bbox = (-180.0,-90.0, 180.0,90.0)
   
   render_tiles(bbox, mapfile, tile_dir, 0, 5, "World")
   Change the 5 to 0, then
   Comment out all of the render_tiles line that follows with a '#'
  • Copy/run mapnik
cp -r ~/osm/mapnik ~
cd ~/mapnik/
source set-mapnik-env
./z0_generate_tiles.py
  • Check file tiles/0/0/0.png is a world map image