kopia lustrzana https://github.com/hholzgra/ocitysmap
355 wiersze
11 KiB
Plaintext
355 wiersze
11 KiB
Plaintext
OCitySMap installation instructions
|
|
===================================
|
|
|
|
These instructions refer to software dependencies by using Ubuntu
|
|
Lucid (10.04) package names. Minor adaptations might be needed for
|
|
other distributions or for the precise Debian or Ubuntu release you
|
|
are using. They have been tested on several x86_64 hosts.
|
|
|
|
1. Installation of PostgreSQL and PostGIS
|
|
|
|
sudo aptitude install postgresql postgresql-contrib
|
|
|
|
2. Creation of a new PostgreSQL user
|
|
|
|
sudo -u postgres createuser -P -S -D -R maposmatic
|
|
|
|
Enter the password twice (we use later 'ereiamjh' as example
|
|
password).
|
|
|
|
3. Creation of the database
|
|
|
|
sudo -u postgres createdb -E UTF8 -O maposmatic maposmatic
|
|
|
|
(see http://wiki.openstreetmap.org/wiki/Mapnik/PostGIS)
|
|
|
|
You can now try to connect to the database, using:
|
|
|
|
psql -h localhost -U maposmatic maposmatic
|
|
|
|
If it doesn't work, fix your configuration.
|
|
|
|
4. Enable PostGIS on the database
|
|
|
|
PostGIS is in fact a set of functions and data types for
|
|
PostgreSQL, and every PostgreSQL database needing these features
|
|
must be initialized as follows. We do this initialization of the
|
|
database with superuser privileges, and then later fix the table
|
|
owners so that our normal user can use the database.
|
|
|
|
a. Enable the plpgsql language on the maposmatic database
|
|
|
|
sudo -u postgres createlang plpgsql maposmatic
|
|
|
|
b. Download postgis 1.5.1
|
|
|
|
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
|
|
|
|
sudo aptitude update
|
|
sudo aptitude dist-upgrade # Or safe-upgrade if you prefer
|
|
|
|
sudo aptitude install postgresql-8.4-postgis
|
|
|
|
If nothing happens, you may have to check the output of "apt-get
|
|
policy postgresql-8.4-postgis" and adjust your apt preferences. A
|
|
sensible default preferences configuration file for this
|
|
repository could be:
|
|
|
|
Package: *
|
|
Pin: release o=LP-PPA-ubuntugis-ubuntugis-unstable
|
|
Pin-Priority: 700
|
|
|
|
c. Install PostGIS support in Postgres
|
|
|
|
sudo -u postgres \
|
|
psql \
|
|
-f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql \
|
|
-d maposmatic
|
|
|
|
Provide comments (Optional):
|
|
|
|
sudo -u postgres \
|
|
psql \
|
|
-f /usr/share/postgresql/8.4/contrib/postgis_comments.sql \
|
|
-d maposmatic
|
|
|
|
d. Add the list of spatial referential systems
|
|
|
|
sudo -u postgres \
|
|
psql \
|
|
-f /usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql \
|
|
-d maposmatic
|
|
|
|
e. Change the owner of the new tables to maposmatic
|
|
|
|
echo "ALTER TABLE geometry_columns OWNER TO maposmatic;
|
|
ALTER TABLE spatial_ref_sys OWNER TO maposmatic;" | \
|
|
sudo -u postgres psql -d maposmatic
|
|
|
|
5. Installation of osm2pgsql
|
|
|
|
osm2pgsql is the tool that takes OSM data as input, and creates a
|
|
PostGIS database from it. At the time of the writing of this
|
|
document, the osm2pgsql packaged in Debian/Ubuntu is not recent
|
|
enough, so we grab a fresh version from SVN.
|
|
|
|
a. If needed, install SVN
|
|
|
|
sudo aptitude install subversion
|
|
|
|
b. Grab osm2pgsql code
|
|
|
|
svn co http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/
|
|
# Tested revisions: r27862
|
|
|
|
c. Install the build dependencies
|
|
|
|
sudo apt-get build-dep osm2pgsql
|
|
|
|
d. Compile
|
|
|
|
cd osm2pgsql
|
|
./autogen.sh
|
|
./configure # with --prefix=.... as needed
|
|
make
|
|
|
|
e. Install
|
|
|
|
Provided you supplied the correct --prefix=... option, just enter:
|
|
|
|
make install
|
|
|
|
6. Download the OSM data
|
|
|
|
We give the example for Luxembourg.
|
|
|
|
wget http://download.geofabrik.de/osm/europe/luxembourg.osm.bz2
|
|
|
|
7. Import the OSM data
|
|
|
|
osm2pgsql -s -c -d maposmatic -m -U maposmatic -W \
|
|
-H localhost luxembourg.osm.bz2
|
|
|
|
If you have a lot of RAM, remove '-s', it will make the import
|
|
faster. If you miss RAM (and have a lot of time available) you can
|
|
also use the '-C' option together with '-s'. (See osm2pgsql -h).
|
|
|
|
If you want to add other OSM DB files, replace the '-c' option
|
|
with a '-a' option in the subsequent files you are adding: if you
|
|
keep the '-c' option, it will erase any previous GIS data you may
|
|
have. For example:
|
|
|
|
osm2pgsql -s -a -d maposmatic -m -U maposmatic -W \
|
|
-H localhost ile-de-france.osm.bz2
|
|
|
|
|
|
8. Install Mapnik
|
|
|
|
We need Mapnik 2.0.0, which is not yet available in stable
|
|
Debian/Ubuntu, so we need to compile it from source.
|
|
|
|
a. Install the dependencies
|
|
|
|
# Base dependencies (0.7.0 by default on lucid, a good start)
|
|
sudo apt-get build-dep python-mapnik
|
|
|
|
# Upgrade to libboost >= 1.41
|
|
sudo add-apt-repository ppa:thomasjj/backports
|
|
sudo aptitude update
|
|
sudo aptitude dist-upgrade # Or safe-upgrade if you prefer
|
|
|
|
sudo aptitude purge libboost1.40-dev
|
|
|
|
sudo aptitude install libboost1.46-dev libboost-date-time1.46-dev \
|
|
libboost-filesystem1.46-dev libboost-iostreams1.46-dev \
|
|
libboost-program-options1.46-dev libboost-python1.46-dev \
|
|
libboost-regex1.46-dev libboost-serialization1.46-dev \
|
|
libboost-system1.46-dev libboost-thread1.46-dev
|
|
|
|
b. Download Mapnik
|
|
|
|
wget http://download.berlios.de/mapnik/mapnik-2.0.0.tar.bz2
|
|
|
|
c. Compile and install Mapnik 2
|
|
|
|
tar xvjf mapnik-2.0.0.tar.bz2
|
|
cd mapnik-2.0.0
|
|
|
|
(any version >= 2.0.0 should follow the same scheme)
|
|
|
|
python scons/scons.py configure INPUT_PLUGINS=all \
|
|
OPTIMIZATION=3 SYSTEM_FONTS=/usr/share/fonts/
|
|
|
|
(You can also path PREFIX=... and PYTHON_PREFIX=.... if you don't
|
|
want a system-wide installation)
|
|
|
|
python scons/scons.py
|
|
|
|
python scons/scons.py install
|
|
|
|
d. Check the installation
|
|
|
|
Run a Python interpreter, and run "import mapnik2". If it doesn't
|
|
work and you didn't do a system-wide installation of Mapnik, don't
|
|
forget to set the PYTHONPATH and LD_LIBRARY_PATH environment
|
|
variables.
|
|
|
|
10. Install Mapnik-OSM
|
|
|
|
Mapnik-OSM is the set of files that tell Mapnik how to render
|
|
OpenStreetMap maps.
|
|
|
|
a. Download
|
|
|
|
svn co \
|
|
http://svn.openstreetmap.org/applications/rendering/mapnik \
|
|
mapnik2-osm
|
|
# Tested revision: r27862
|
|
|
|
b. Installation of static data
|
|
|
|
In addition to the OpenStreetMap data, some other static data are
|
|
used to render the maps (world boundaries, etc.)
|
|
|
|
cd mapnik2-osm
|
|
sh ./get-coastlines.sh
|
|
|
|
c. Enabling unifont
|
|
|
|
In order to get correct rendering for Korean, Chinese or Japanese
|
|
character, the unifont font must be used. In order do enable it:
|
|
|
|
sudo aptitude install ttf-unifont
|
|
|
|
Then edit inc/fontset-settings.xml.inc.template and uncomment the
|
|
following line :
|
|
|
|
<Font face_name="unifont Medium" />
|
|
|
|
in the book-fonts, bold-fonts and oblique-fonts sections.
|
|
|
|
d. Configuration
|
|
|
|
python ./generate_xml.py --dbname maposmatic --host 'localhost' \
|
|
--user maposmatic --port 5432 \
|
|
--password 'ereiamjh'
|
|
|
|
11. Installation of OCitySMap
|
|
|
|
a. Install Git if needed
|
|
|
|
sudo aptitude install git-core git-email
|
|
|
|
b. Grab the sources
|
|
|
|
git clone git://git.savannah.nongnu.org/maposmatic/ocitysmap.git
|
|
|
|
c. Install dependencies
|
|
|
|
sudo aptitude install python-psycopg2 python-gdal \
|
|
python-gtk2 python-cairo \
|
|
python-shapely
|
|
|
|
Note that python-gtk2 is not needed for any graphical interface,
|
|
but because it contains Pango and PangoCairo that we use to render
|
|
text on the map.
|
|
|
|
d. Configuration file
|
|
|
|
Create a ~/.ocitysmap.conf configuration file, modeled after the
|
|
provided ocitysmap2.conf-template file.
|
|
|
|
12. Run OCitySMap
|
|
|
|
./ocitysmap2-render -t "Ceci n'est pas Paris" --osmid=-411354 # Contern, LU
|
|
./ocitysmap2-render -t "Ceci n'est pas Paris" --osmid=-943886 # Chevreuse, FR
|
|
|
|
Appendix: installation of the MapQuest stylesheet
|
|
-------------------------------------------------
|
|
|
|
The above instructions, at step 10, describe how to set up ocitysmap
|
|
with the default Mapnik stylesheet for OpenStreetMap. It is possible
|
|
to install other stylesheets, such as the stylesheets made available
|
|
by MapQuest. The instructions below detail how to install those
|
|
additional stylesheets, making the assumption that ocitysmap is
|
|
properly configured and running with the default OSM stylesheet.
|
|
|
|
First, grab the MapQuest stylesheets:
|
|
|
|
git clone git://github.com/MapQuest/MapQuest-Mapnik-Style.git
|
|
|
|
(version tested: 9d6c5503194c58fc1f9f760b4e5af8a1602dfb30)
|
|
|
|
Go into the MapQuest-Mapnik-Style directory, in which we will do all
|
|
the configuration.
|
|
|
|
First, those stylesheets require the same "world boundaries"
|
|
information as the original OSM stylesheet, so we are going to share
|
|
these informations by creating a symbolic link:
|
|
|
|
ln -s /path/to/original/osm/stylesheet/world_boundaries world_boundaries
|
|
|
|
In addition to those world boundaries, the MapQuest stylesheets need a
|
|
few other files. Download the corresponding tarball:
|
|
|
|
wget http://developer.mapquest.com/content/static/geotiffs/mercator_tiffs.tar
|
|
|
|
Unpack this archive, and put the four mq_world_mercator_*.tiff files
|
|
directory into the world_boundaries/ directory (this directory is
|
|
shared with the original OSM stylesheet, but this is not a problem as
|
|
the mq_world_mercator_*.tiff files are not used by the original OSM
|
|
stylesheet).
|
|
|
|
Now, to the configuration of the stylesheet itself:
|
|
|
|
cp mapquest_inc/datasource-settings.xml.inc.template mapquest_inc/datasource-settings.xml.inc
|
|
vi mapquest_inc/datasource-settings.xml.inc
|
|
|
|
Adjust your database details appropriately. The "estimate_extent"
|
|
value should be "false", and the "extent" value should be
|
|
-20037508,-19929239,20037508,19929239.
|
|
|
|
Next configuration file:
|
|
|
|
cp mapquest_inc/fontset-settings.xml.inc.template mapquest_inc/fontset-settings.xml.inc
|
|
vi mapquest_inc/fontset-settings.xml.inc
|
|
|
|
Not much to change here, the default value is fine. If you want to use
|
|
the same font for the original OSM stylesheet and the MapQuest one,
|
|
replace "Arial" by "DejaVu".
|
|
|
|
Next (and final) configuration file:
|
|
|
|
cp mapquest_inc/settings.xml.inc.template mapquest_inc/settings.xml.inc
|
|
vi mapquest_inc/settings.xml.inc
|
|
|
|
And set the following values:
|
|
|
|
* symbols to "mapquest_symbols" (the directory in the MapQuest
|
|
stylesheet where the icons and other related elements are stored)
|
|
|
|
* osm2pgsql_projection to "&srs900913;"
|
|
|
|
* world_boundaries to "world_boundaries" (the directory in the
|
|
MapQuest stylesheet where the world boundaries data can be found)
|
|
|
|
* prefix to "planet_osm". This is the prefix of the OSM tables in the
|
|
PostGIS database.
|
|
|
|
The final step is to integrate this new stylesheet in ocitysmap. To do
|
|
so, edit your ocitysmap.conf file, and add a new stylesheet section,
|
|
like:
|
|
|
|
[mapquest_eu]
|
|
name: MapQuestEu
|
|
description: MapQuest Europe stylesheet
|
|
path: /path/to/MapQuest-Mapnik-Style/mapquest-eu.xml
|
|
|
|
Don't forget to add "mapquest_eu" to the available_stylesheets
|
|
variable, which lists all available stylesheets.
|
|
|
|
Note that in addition to the MapQuest Europe stylesheet
|
|
(mapquest-eu.xml), the Git repository also contains the MapQuest US
|
|
and MapQuest UK stylesheets (mapquest-us.xml and mapquest-uk.xml),
|
|
that you can similarly add to your ocitysmap.conf file.
|