FastNetMon

Monday, 5 October 2009

Установка Mapnik как рендера к OpenStreetMap

Ставим саму баблиотеку Mapnik. Оффсайт: http://wiki.openstreetmap.org/wiki/Mapnik Оффмануал: http://trac.mapnik.org/wiki/CentOS/RHEL

Увы, но сначала придется ставить новый Boost т.к. в Центосе он старый (1.33).
http://phpsuxx.blogspot.com/2009/10/boost-134-centos-5.html


# к этому подходит 1.33 Буст
cd
svn co http://svn.mapnik.org/trunk mapnik-libs
cd mapnik-libs
apt-get remove python-mapnik
apt-get install libboost-thread1.35-dev libboost-regex1.35-dev libboost-python1.35-dev libboost-iostreams1.35-dev libtiff4-dev libpng12-dev libltdl3-dev libxml2-dev libfreetype6-dev postgresql-server-dev-8.3

# Для Ред-Хатов:
yum -y install freetype-devel libtool-ltdl-devel libpng-devel libtiff-devel libjpeg-devel gcc-c++ libicu-devel python-devel bzip2-devel
python scons/scons.py
python scons/scons.py install # на продакшенах так делать КРАЙНЕ нежелательно
# Для 32 битных платформ
echo "/usr/local/lib" | tee /etc/ld.so.conf.d/mapnik-i386.conf
# Для 64 битных платформ
echo "/usr/local/lib64" | tee /etc/ld.so.conf.d/mapnik-i386.conf
ldconfig


На Дебияне это не нужно:

cd /usr/lib
ln -s libboost_filesystem.so libboost_filesystem-mt.so
ln -s libboost_regex.so libboost_regex-mt.so
ln -s libboost_iostreams.so libboost_iostreams-mt.so
ln -s libboost_program_options.so libboost_program_options-mt.so
ln -s libboost_thread.so libboost_thread-mt.so
ln -s libboost_python.so libboost_python-mt.so


Тестируем:

cd /root/mapnic-libs/demo/python
python rundemo.py



Ставим сам рендер карт:
cd
svn checkout http://svn.openstreetmap.org/applications/rendering/mapnik
cd mapnik



открываем:
nano ./set-mapnik-env

export MAPNIK_TILE_DIR=/var/www/html/tiles/

# this empty if your database is on the local machine.
export MAPNIK_DBHOST="127.0.0.1"

# This is the name of the database where the OSM data is stored.
export MAPNIK_DBNAME="my_test_database"

# This is the username we should use to log into the PostgreSQL database.
export MAPNIK_DBUSER="my_db_user"

# This is the password we should use to log into the PostgreSQL database.
export MAPNIK_DBPASS="qwerty"

. ./set-mapnik-env
./customize-mapnik-map > osm.xml
mkdir -p /var/www/html/tiles/ # создаем папку для отрендереных "плиток"


Развертываем текстуры:

cd
cd mapnik
wget -c http://tile.openstreetmap.org/world_boundaries-spherical.tgz
wget -c http://tile.openstreetmap.org/processed_p.tar.bz2
wget -c http://tile.openstreetmap.org/shoreline_300.tar.bz2

tar xzf world_boundaries-spherical.tgz
tar -xjf processed_p.tar.bz2
tar xjf shoreline_300.tar.bz2 -C world_boundaries
mv processed_p.* world_boundaries



Запускаем генерацию имаджей

./generate_image.py


А вот координаты для генерации карты Российской Федерации:

ll = (0, 0, 180, 80)

z = 10
imgx = 500 * z
imgy = 1000 * z



А вот для карты Самары:

ll = (48, 48, 55, 55)
#---------------------------------------------------

z = 150
imgx = 50 * z
imgy = 50 * z


А вот конфиг для программы generate_tiles.py:

bbox = (40, 50 , 60, 65)
#bbox = (51, 52.95, 50, 53)
#---------------------------------------------------
minZoom = 1
maxZoom = 25

render_tiles(bbox, mapfile, tile_dir, minZoom, maxZoom, "World")


Теперь устанавливаем apache для раздачи "плиток" карт:

apt-get install -y apache2


Запускаем генератор карт:

cd
cd mapnik
./generate_tiles.py

No comments :

Post a Comment

Note: only a member of this blog may post a comment.