User:Tatata/Mapnik

From OpenStreetMap Wiki
Jump to: navigation, search

このページはTatataが自分のPC (Windows XP + VMware + Ubuntu) でMapnikのsourceをビルドした時の手順などをメモしたものです。

外部向けのサーバーによるサービスのために必要と思われるセキュリティ上の配慮は行っていませんので、外部向けのサーバーにインストールする場合にはアカウント名、パスワード、DB接続設定(password-less connections)、DB名などに注意して下さい。

VMware & Ubuntu

Ubuntu 8.04 LTSのVMware用仮想マシンがリリースされました。
通常の日本語ローカライズドDesktop CDの代わりにこれを利用すれば、「VMX Builderの導入」とそこに書いてあるVM(仮想PC)の作成作業は不要になります。また、VMwareの共有フォルダも上手く行くかも知れません。


Ubuntuのダウンロード

http://www.ubuntulinux.jp/ からUbuntu 8.04の日本語ローカライズドDesktop CD(CDイメージ)をダウンロードする。


VMwareの導入

http://www.vmware.com/jp/ からVMware Player 2.0.3 for Windowsをダウンロードする。

VMware-player-2.0.3-80004.exeを実行して導入する。完了後、Windowsを再起動する。


VMX Builderの導入

http://petruska.stardock.net/Software/VMware.html からVMXBuilderSetup.exeをダウンロードする。

VMXBuilderSetup.exeを実行して導入する。 完了後、VMX Builderを起動してVM(仮想PC)の作成を行う。

  1. Optionsメニューをクリックし、Lanch(VMware Player2の実行ファイルのパス)とCD-ROM image(LinuxのインストールCDなどを置いてあるパス)を設定する。
  2. Create New Virtual Machineのボタンをクリックして、仮想PCの新規作成を行う。
  3. Optionsタブで、Host Product(Player,2.x)とGuest OS(Linux,Ubuntu)を選択する。
  4. Hardwareタブで、Network Adapter(Ethernet,NAT)とHard Diskを追加する 。ネットワーク接続については次のページを参照。http://nobumasa-web.hp.infoseek.co.jp/multi_boot/vmware/vmware.html
  5. Memoryを128MBから256MBに変更する。(Ubuntu/PostgreSQL/Mapnikのインストールは256MBで行えるが、レンダリングの際に時間が掛かるようであれば、さらに増やした方が良いかも知れない。)
  6. Disk fileのCreate Newボタンをクリックして仮想ディスクを作成する(IDE,10Gb,Single Growable virtual disk,VMware Type Library)。
  7. DVD/CD-ROM Drive(CD-ROM)を追加し、ConnectionのUse ISO ImageでインストールCDのイメージを指定する。
  8. VMメニューのSaveでVMの構成を保存してから、VMメニューのLaunchでVMを起動。


Ubuntuの導入

ユーザー名(vmuser)やパスワードなどを設定する。それ以外は基本的に省略時値(インストーラーが検出した値)のままで良い。導入完了後、Ubuntuを再起動する。CD-ROMを取り出す指示があるが、そのまま続行して構わない。また、フロッピードライブに接続できないメッセージが出てもそのまま続行して構わない。


VMwareの共有フォルダについて

VMware PlayerにはホストOSとゲストOSとの間で共有フォルダの機能があるが、今回の導入ではその機能に必要なVMware Toolsのconfig中にvmhgfsのbuildが失敗して共有フォルダが使えず、さらにネットワークの設定がおかしくなって接続ができなくなってしまったので共有フォルダの使用は諦め、VMのディスク(.vmdk)などを削除してUbuntuを再インストールした。

試していないので良く分からないが、共有フォルダを利用したい場合はUbuntu Japanese Local Community Teamが配布している日本語ローカライズドVMware用仮想マシンを利用すれば上手く行くかも知れない。但し、2008年5月8日時点で利用できるのはUbuntu 7.10の仮想マシンなので、インストール済みのアプリケーションの種類やバージョンの違いにより、Ubuntu 8.04を使用して書いたこのページの操作方法とは異なっている可能性がある。

共有フォルダの利用についての参考ページ http://www.zinbun.kyoto-u.ac.jp/~mfujii/computer/vmware-player

software dependencies

Ubuntuのメニューから、「システム」->「システム管理」->「Synaptic パッケージ・マネージャ」を起動して、以下の操作でMapnikのビルドに必要なライブラリを導入する。

libboost (thread, filesystem, regex, program_options, python, 他)
「Synaptic パッケージ・マネージャ」の検索ボタンをクリックして「libboost」を検索し、libboost-devを右クリックして、インストールを指定する。(依存するパッケージのインストールを尋ねるpopupではマークをクリックする。)
libboost-thread-dev、libboost-filesystem-dev、libboost-iostreams-dev、libboost-regex-dev、libboost-program_options-dev、libboost-python-dev、libboost-serialization-devについてもインストールを指定する。
適用ボタンをクリックし、適用を行う。(ダウンロードに失敗した時は無視して続行せずに一旦終わらせ、もう一度適用を行う。)
libpng
「Synaptic パッケージ・マネージャ」の検索ボタンをクリックして「libpng」を検索し、libpng13-devを右クリックして、インストールを指定する。適用ボタンをクリックし、適用を行う。
libjpeg, libtiff
「Synaptic パッケージ・マネージャ」の検索ボタンをクリックして「libtiff」を検索し、libtiff4-devを右クリックして、インストールを指定する。(依存するパッケージのインストールを尋ねるpopupではマークをクリックする。)適用ボタンをクリックし、適用を行う。
libz, libfreetype2
「Synaptic パッケージ・マネージャ」の検索ボタンをクリックして「freetype」を検索し、libfreetype6-devを右クリックして、インストールを指定する。(依存するパッケージのインストールを尋ねるpopupではマークをクリックする。)適用ボタンをクリックし、適用を行う。
proj4
「Synaptic パッケージ・マネージャ」の検索ボタンをクリックして「proj」を検索し、projを右クリックして、インストールを指定する。適用ボタンをクリックし、適用を行う。
PostgreSQL libraries Python
「Synaptic パッケージ・マネージャ」の検索ボタンをクリックして「python」を検索し、python-devを右クリックして、インストールを指定する。適用ボタンをクリックし、適用を行う。
その他
「Synaptic パッケージ・マネージャ」の検索ボタンをクリックして「ltdl」を検索し、libltdl3-devを右クリックして、インストールを指定する。適用ボタンをクリックし、適用を行う。
「Synaptic パッケージ・マネージャ」の検索ボタンをクリックして「g++」を検索し、g++を右クリックして、インストールを指定する。(依存するパッケージのインストールを尋ねるpopupではマークをクリックする。)適用ボタンをクリックし、適用を行う。


MapnikのInstallation Guideには単に"Linux/UNIX with g++ compiler"と書かれているが、実際にはgcc 3.xでは駄目のようである。 Ubuntu 8.04ではgccに関しては問題無いが、念のためバージョンの確認方法を書いておく。 Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「端末」を起動して、下の太字のコマンドを入力してEnterを押す。

vmuser@vmuser-desktop:~$ gcc -v

Using built-in specs.
Target: i486-linux-gnu
コンフィグオプション: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
スレッドモデル: posix
gcc バージョン 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
vmuser@vmuser-desktop:~$



PostgreSQL/PostGIS

Ubuntuのメニューから、「システム」->「システム管理」->「Synaptic パッケージ・マネージャ」を起動する。

検索ボタンをクリックして「postgresql」を検索する。postgresql、postgresql-8.3-postgis、pgadmin3を右クリックして、インストールを指定する。(依存するパッケージのインストールを尋ねるpopupではマークをクリックする。)

適用ボタンをクリックし、適用を行う。


パッケージのインストールが完了したら、Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「端末」を起動し、sudo su でrootになる。

vmuser@vmuser-desktop:~$ sudo su

[sudo] password for vmuser:
root@vmuser-desktop:/home/vmuser#



PostgreSQL導入時に自動的に追加されたデータベースの管理ユーザpostgresにパスワードを設定する。

root@vmuser-desktop:/home/vmuser# passwd postgres

新しいUNIXパスワードを入力してください:
新しいUNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました



rootからpostgresになり、通常使用しているユーザーを新たなデータベースユーザとして追加する。

root@vmuser-desktop:/home/vmuser# exit

exit
vmuser@vmuser-desktop:~$ su - postgres
パスワード:
postgres@vmuser-desktop:~$ createuser -P vmuser
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) y
postgres@vmuser-desktop:~$



pg_hba.confの編集のため、ファイルの権限を変更する。

postgres@vmuser-desktop:~$ cd /etc/postgresql/8.3/main/

postgres@vmuser-desktop:/etc/postgresql/8.3/main$ chmod o+rw pg_hba.conf



Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「テキスト・エディタ」を起動し、pg_hba.confを開く。以下の行を追加してpassword-less connectionsを有効にする。

localの行の下に追加

local   gis         all                          trust



ファイルの権限を元に戻す。

postgres@vmuser-desktop:/etc/postgresql/8.3/main$ chmod o-rw pg_hba.conf



設定変更を反映させる。

postgres@vmuser-desktop:/etc/postgresql/8.3/main$ sudo service postgresql-8.3 reload

[sudo] password for postgres:



通常使用しているユーザーに戻ってデータベースを作成する。

postgres@vmuser-desktop:~$ exit

logout
vmuser@vmuser-desktop:~$ createdb -E UTF8 -O vmuser gis
vmuser@vmuser-desktop:~$ createlang plpgsql gis



PostGISのセットアップを行う。

vmuser@vmuser-desktop:~$ psql -d gis -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql



osm2pgsql

パッケージ・マネージャから取得できるosm2pgsqlのパッケージは古いので、osm2pgsqlのソースをsvnから取得して導入する。


subversionの導入
Ubuntuのメニューから、「システム」->「システム管理」->「Synaptic パッケージ・マネージャ」を起動する。
検索ボタンをクリックして「subversion」を検索し、subversionを右クリックして、インストールを指定する。(依存するパッケージのインストールを尋ねるpopupではマークをクリックする。)
検索ボタンをクリックして「build-essential」を検索し、build-essentialを右クリックして、インストールを指定する。(依存するパッケージのインストールを尋ねるpopupではマークをクリックする。)
検索ボタンをクリックして「libxml2-dev」を検索し、libxml2-devを右クリックして、インストールを指定する。
検索ボタンをクリックして「libgeos-dev」を検索し、libgeos-devを右クリックして、インストールを指定する。
検索ボタンをクリックして「libpq」を検索し、libpq-devとlibpqxx-devを右クリックして、インストールを指定する。(既にインストール済みのものは何もしない。依存するパッケージのインストールを尋ねるpopupではマークをクリックする。)
検索ボタンをクリックして「libbz2-dev」を検索し、libbz2-devを右クリックして、インストールを指定する。
適用ボタンをクリックし、適用を行う。


subversionの導入が完了したら、Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「端末」を起動し、svnからosm2pgsqlのソースを取得(チェックアウト)する。

vmuser@vmuser-desktop:~$ svn co http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/

A osm2pgsql/default.style
A osm2pgsql/reprojection.c
A osm2pgsql/sprompt.c
A osm2pgsql/output.h
A osm2pgsql/reprojection.h
A osm2pgsql/sprompt.h
A osm2pgsql/build_geometry.cpp
A osm2pgsql/middle-ram.c
A osm2pgsql/UTF8sanitizer.c
A osm2pgsql/middle-ram.h
A osm2pgsql/middle-pgsql.c
A osm2pgsql/osm2pgsql-svn.sh
A osm2pgsql/osm2pgsql.c
A osm2pgsql/middle-pgsql.h
A osm2pgsql/osmtypes.h
A osm2pgsql/Makefile
A osm2pgsql/input.c
A osm2pgsql/rb.c
A osm2pgsql/middle.h
A osm2pgsql/osm2pgsql.spec.in
A osm2pgsql/input.h
A osm2pgsql/mapnik-osm-updater.sh
A osm2pgsql/rb.h
A osm2pgsql/sanitizer.h
A osm2pgsql/keyvals.c
A osm2pgsql/build_geometry.h
A osm2pgsql/text-tree.c
A osm2pgsql/keyvals.h
A osm2pgsql/legacy
A osm2pgsql/legacy/build_geometry.h
A osm2pgsql/legacy/osm2pgsql.c
A osm2pgsql/legacy/build_geometry.cpp
A osm2pgsql/legacy/Makefile
A osm2pgsql/output-pgsql.c
A osm2pgsql/pgsql.c
A osm2pgsql/text-tree.h
A osm2pgsql/output-pgsql.h
A osm2pgsql/README.txt
A osm2pgsql/pgsql.h
 U osm2pgsql
リビジョン 7621 をチェックアウトしました。

vmuser@vmuser-desktop:~$



makeを行う。

vmuser@vmuser-desktop:~$ cd osm2pgsql

vmuser@vmuser-desktop:~/osm2pgsql$ make



Mapnik

http://mapnik.org/ からmapnikのソースをダウンロードする。


Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「端末」を起動し、sudo su でrootになる。

vmuser@vmuser-desktop:~$ sudo su

[sudo] password for vmuser:
root@vmuser-desktop:/home/vmuser#



/usr/local/srcに移動してダウンロードしたファイルを解凍する。

root@vmuser-desktop:/home/vmuser# cd /usr/local/src

root@vmuser-desktop:/usr/local/src#
root@vmuser-desktop:/usr/local/src# tar xvf /home/vmuser/download/mapnik_src-0.5.1.tar.gz



展開されたディレクトリに移動してsconsでビルドする。

root@vmuser-desktop:/usr/local/src# cd mapnik-0.5.1

root@vmuser-desktop:/usr/local/src/mapnik-0.5.1# python scons/scons.py BOOST_INCLUDES=/usr/include/boost BOOST_LIBS=/usr/lib PGSQL_INCLUDES=/usr/include/postgresql



sconsでインストールする。

root@vmuser-desktop:/usr/local/src/mapnik-0.5.1# python scons/scons.py install BOOST_INCLUDES=/usr/include/boost BOOST_LIBS=/usr/lib PGSQL_INCLUDES=/usr/include/postgresql



rendering

国境データ・海岸線データ

Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「端末」を起動し、国境データ・海岸線データのダウンロードする。

vmuser@vmuser-desktop:~$ wget http://tile.openstreetmap.org/world_boundaries-spherical.tgz

--10:44:54-- http://tile.openstreetmap.org/world_boundaries-spherical.tgz
           => `world_boundaries-spherical.tgz'
tile.openstreetmap.org をDNSに問いあわせています... 128.40.58.204
tile.openstreetmap.org|128.40.58.204|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 52,857,349 (50M) [application/x-gzip]

100%[====================================>] 52,857,349 59.10K/s ETA 00:00

10:59:35 (58.63 KB/s) - `world_boundaries-spherical.tgz' を保存しました [52857349/52857349]

vmuser@vmuser-desktop:~$ wget http://hypercube.telascience.org/~kleptog/processed_p.zip
--11:01:35-- http://hypercube.telascience.org/~kleptog/processed_p.zip
           => `processed_p.zip'
hypercube.telascience.org をDNSに問いあわせています... 137.110.119.130
hypercube.telascience.org|137.110.119.130|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 229,511,005 (219M) [application/zip]

100%[====================================>] 229,511,005 45.47K/s ETA 00:00

12:47:05 (35.42 KB/s) - `processed_p.zip' を保存しました [229511005/229511005]

vmuser@vmuser-desktop:~$



国境データと海岸線データを解凍し、一つのディレクトリにまとめる。

vmuser@vmuser-desktop:~$ tar xzf world_boundaries-spherical.tgz

vmuser@vmuser-desktop:~$ unzip processed_p.zip
Archive: processed_p.zip
  inflating: coastlines/processed_p.dbf
  inflating: coastlines/processed_p.index
  inflating: coastlines/processed_p.shp
  inflating: coastlines/processed_p.shx
vmuser@vmuser-desktop:~$ mv coastlines/* world_boundaries/
vmuser@vmuser-desktop:~$ rmdir coastlines



OSM files

svnからOSMのmapnik関連ファイルを取得(チェックアウト)する。

vmuser@vmuser-desktop:~$ svn checkout http://svn.openstreetmap.org/applications/rendering/mapnik

A mapnik/convert
A mapnik/openstreetmap-mapnik-world-boundaries
A mapnik/openstreetmap-mapnik-world-boundaries/debian
A mapnik/openstreetmap-mapnik-world-boundaries/debian/update_svn_revision.sh
A mapnik/openstreetmap-mapnik-world-boundaries/debian/control
A mapnik/openstreetmap-mapnik-world-boundaries/debian/dirs
A mapnik/openstreetmap-mapnik-world-boundaries/debian/files
A mapnik/openstreetmap-mapnik-world-boundaries/debian/compat
A mapnik/openstreetmap-mapnik-world-boundaries/debian/changelog
A mapnik/openstreetmap-mapnik-world-boundaries/debian/copyright
A mapnik/openstreetmap-mapnik-world-boundaries/debian/rules
A mapnik/openstreetmap-mapnik-world-boundaries/debian/pth
A mapnik/openstreetmap-mapnik-world-boundaries/debian/substvars
A mapnik/generate_tiles.py
A mapnik/setup_z_order.sql
A mapnik/generate_image.py
A mapnik/install.txt
A mapnik/symbols
A mapnik/symbols/motorway_shield3.png
A mapnik/symbols/post_box.png
A mapnik/symbols/motorway_shield4.png
A mapnik/symbols/aiga_parking1.png
A mapnik/symbols/bus_stop.png
A mapnik/symbols/level_crossing2.png
A mapnik/symbols/secondary_shield1.png
A mapnik/symbols/postoffice.png
A mapnik/symbols/secondary_shield2.png
A mapnik/symbols/secondary_shield3.png
A mapnik/symbols/mini_round.png
A mapnik/symbols/secondary_shield4.png
A mapnik/symbols/secondary_shield5.png
A mapnik/symbols/station_small.png
A mapnik/symbols/power_tower.png
A mapnik/symbols/tertiary_shield1.png
A mapnik/symbols/aerodrome.png
A mapnik/symbols/tertiary_shield2.png
A mapnik/symbols/tertiary_shield3.png
A mapnik/symbols/tertiary_shield4.png
A mapnik/symbols/windmill.png
A mapnik/symbols/airport.png
A mapnik/symbols/tertiary_shield5.png
A mapnik/symbols/station.png
A mapnik/symbols/grave_yard.png
A mapnik/symbols/pub.png
A mapnik/symbols/recycle.png
A mapnik/symbols/halt.png
A mapnik/symbols/parking.png
A mapnik/symbols/primary_shield1.png
A mapnik/symbols/primary_shield2.png
A mapnik/symbols/primary_shield3.png
A mapnik/symbols/primary_shield4.png
A mapnik/symbols/post_office.png
A mapnik/symbols/primary_shield5.png
A mapnik/symbols/tower.png
A mapnik/symbols/beach.png
A mapnik/symbols/forest.png
A mapnik/symbols/london-tube-24.png
A mapnik/symbols/pint.png
A mapnik/symbols/arrow_back.png
A mapnik/symbols/nature_reserve2.png
A mapnik/symbols/trunk_shield1.png
A mapnik/symbols/power_wind.png
A mapnik/symbols/trunk_shield2.png
A mapnik/symbols/level_crossing.png
A mapnik/symbols/trunk_shield3.png
A mapnik/symbols/recycling.png
A mapnik/symbols/trunk_shield4.png
A mapnik/symbols/peak.png
A mapnik/symbols/trunk_shield5.png
A mapnik/symbols/place_of_worship.png
A mapnik/symbols/hospital.png
A mapnik/symbols/nature_reserve.png
A mapnik/symbols/arrow.png
A mapnik/symbols/motorway_shield1.png
A mapnik/symbols/motorway_shield2.png
A mapnik/convert-template
A mapnik/osm2pgsl.py
A mapnik/osm.xml
A mapnik/README
A mapnik/set-mapnik-env
A mapnik/osm-template.xml
A mapnik/zoom-to-scale.txt
A mapnik/all_tiles
A mapnik/all_tiles/tilecount.pl
A mapnik/all_tiles/C
A mapnik/all_tiles/C/tilecount.c
A mapnik/all_tiles/C/bst.c
A mapnik/all_tiles/C/Makefile
A mapnik/all_tiles/C/bst.h
A mapnik/all_tiles/README
A mapnik/all_tiles/render_all.py
A mapnik/openstreetmap-mapnik-data
A mapnik/openstreetmap-mapnik-data/build-stamp
A mapnik/openstreetmap-mapnik-data/debian
A mapnik/openstreetmap-mapnik-data/debian/control
A mapnik/openstreetmap-mapnik-data/debian/dirs
A mapnik/openstreetmap-mapnik-data/debian/files
A mapnik/openstreetmap-mapnik-data/debian/compat
A mapnik/openstreetmap-mapnik-data/debian/postinst
A mapnik/openstreetmap-mapnik-data/debian/config
A mapnik/openstreetmap-mapnik-data/debian/changelog
A mapnik/openstreetmap-mapnik-data/debian/copyright
A mapnik/openstreetmap-mapnik-data/debian/rules
A mapnik/openstreetmap-mapnik-data/debian/pth
A mapnik/openstreetmap-mapnik-data/debian/substvars
A mapnik/openstreetmap-mapnik-data/debian/templates
A mapnik/openstreetmap-mapnik-data/ChangeLog
A mapnik/openstreetmap-mapnik-data/bin
A mapnik/openstreetmap-mapnik-data/bin/install-db-osm-data-mapnik
A mapnik/mkshield.pl
A mapnik/customize-mapnik-map
 U mapnik
リビジョン 7632 をチェックアウトしました。
vmuser@vmuser-desktop:~$



国境データと海岸線データをmapnikのディレクトリに移動する。

vmuser@vmuser-desktop:~$ mv world_boundaries mapnik/world_boundaries



set-mapnik-envのバックアップを作成する。

vmuser@vmuser-desktop:~$ cd mapnik

vmuser@vmuser-desktop:~/mapnik$ cp set-mapnik-env set-mapnik-env.bak



Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「テキスト・エディタ」を起動し、set-mapnik-envを開いて自分の環境に合わせて編集する。

変更前 変更後
export MAPNIK_DBNAME='osm' export MAPNIK_DBNAME='gis'


set-mapnik-envとcustomize-mapnik-mapを実行してレンダリングのルールファイル(osm.xml)を作成する。

vmuser@vmuser-desktop:~/mapnik$ source ./set-mapnik-env

vmuser@vmuser-desktop:~/mapnik$ ./customize-mapnik-map >$MAPNIK_MAP_FILE



データのロード

データはosm.orgのExportタブを使ってDownloadしておく。(その他のデータ取得方法はUser:Tatata/Mapnik-Win32#OSM dataを参照。)

osm2pgsqlのディレクトリに移動し、osm2pgsqlを実行してデータベースにデータをロードする。

vmuser@vmuser-desktop:~/mapnik$ cd ..

vmuser@vmuser-desktop:~$ cd osm2pgsql
vmuser@vmuser-desktop:~/osm2pgsql$ ./osm2pgsql -m -d gis ../mapnik/map.osm
osm2pgsql SVN version 0.53-20080502 $Rev: 7345 $

Using projection SRS 900913 (Spherical Mercator)
Setting up table: planet_osm_point
Setting up table: planet_osm_line
Setting up table: planet_osm_polygon
Setting up table: planet_osm_roads
Mid: Ram, scale=100

Reading in file: ../mapnik/map.osm
Processing: Node(1k) Way(0k) Relation(0k)
Node stats: total(1449), max(261023966)
Way stats: total(113), max(24061110)
Relation stats: total(0), max(0)

Writing way(0k)

vmuser@vmuser-desktop:~/osm2pgsql$



道路や駅などの名称を日本語のみの表示にしたい場合は、User:Tatata/Mapnik-Win32#name:jaを参照。


地図の生成

「テキスト・エディタ」でgenerate_tiles.py(タイル生成用スクリプト)又はgenerate_image.py(画像ファイル生成用スクリプト)を開き、生成したいエリアのbounding boxesとzoom levelsを設定する。


generate_tiles.pyの場合はファイルの終わりの方に世界全体の設定と数箇所の都市の設定が書かれているので、使用しないものは全てコメントにして、自分用の設定を追加する。以下の例は東京の「丸の内」。

    # Marunouchi, Tokyo

    minZoom = 10
    maxZoom = 16
    bbox = (139.75824, 35.67714, 139.7702, 35.68604)
    render_tiles(bbox, mapfile, tile_dir, minZoom, maxZoom)



generate_image.pyの場合は次の通り。(例は東京の「丸の内」。)

変更前 変更後

    ll = (-6.5, 49.5, 2.1, 59)
    z = 10
    imgx = 500 * z
    imgy = 1000 * z

    ll = (139.75824, 35.67714, 139.7702, 35.68604)
    z = 10
    imgx = 128 * z
    imgy = 128 * z


スクリプトを実行して地図を生成する。

vmuser@vmuser-desktop:~/mapnik$ ./generate_tiles.py


又は

vmuser@vmuser-desktop:~/mapnik$ ./generate_image.py



日本語表示

Mapnikのfontsディレクトリ (/usr/local/lib/mapnik/fonts) に日本語フォントを入れる。


以下は、Ubuntu 8.04の日本語ローカライズドDesktop CDに含まれているIPAモナーフォントのIPA UIゴシック (ipagui-mona.ttf) ヘのシンボリックリンクを作成する方法。


Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「端末」を起動する。

vmuser@vmuser-desktop:~$ sudo ln -s /usr/share/doc/opfc-modulehp-ipamonafont-source/source/fonts/ipagui-mona.ttf /usr/local/lib/mapnik/fonts/ipagui-mona.ttf

[sudo] password for vmuser:
vmuser@vmuser-desktop:~$



システムが認識できるフォント名を確認する。

vmuser@vmuser-desktop:~$ python

Python 2.5.2 (r252:60911, Apr 21 2008, 11:12:42)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from mapnik import *
>>> for fname in FontEngine.face_names():
... print fname
...
DejaVu Sans Bold
DejaVu Sans Bold Oblique
DejaVu Sans Book
DejaVu Sans Condensed
DejaVu Sans Condensed Bold
DejaVu Sans Condensed Bold Oblique
DejaVu Sans Condensed Oblique
DejaVu Sans ExtraLight
DejaVu Sans Mono Bold
DejaVu Sans Mono Bold Oblique
DejaVu Sans Mono Book
DejaVu Sans Mono Oblique
DejaVu Sans Oblique
DejaVu Serif Bold
DejaVu Serif Bold Oblique
DejaVu Serif Book
DejaVu Serif Condensed
DejaVu Serif Condensed Bold
DejaVu Serif Condensed Bold Oblique
DejaVu Serif Condensed Oblique
DejaVu Serif Oblique
IPAMonaUIGothic Regular
>>>


[Ctrl]+[D]でpythonを終わらせる。


OSMのmapnik関連ファイルを置いたディレクトリ (~/mapnik) に移動し、osm-template.xmlのバックアップを作成する。

vmuser@vmuser-desktop:~$ cd mapnik

vmuser@vmuser-desktop:~/mapnik$ cp osm-template.xml osm-template.xml.bak



Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「テキスト・エディタ」を起動し、osm-template.xmlを開いて、TextSymbolizerのface_name=を使用したいフォントの名前に書き換える。(複数指定不可、1か所につき1個のみ。)

変更前 変更後

DejaVu Sans Bold
DejaVu Sans Book
DejaVu Sans Oblique

IPAMonaUIGothic Regular


set-mapnik-envとcustomize-mapnik-mapを実行してmapnikのルールファイル(osm.xml)を作成する。

vmuser@vmuser-desktop:~/mapnik$ source ./set-mapnik-env

vmuser@vmuser-desktop:~/mapnik$ ./customize-mapnik-map >$MAPNIK_MAP_FILE



generate_tiles.py又はgenerate_image.pyを実行して日本語が地図に表示されることを確認する。

vmuser@vmuser-desktop:~/mapnik$ ./generate_tiles.py


又は

vmuser@vmuser-desktop:~/mapnik$ ./generate_image.py



MapnikViewer

MapnikViewerの準備

Ubuntuのメニューから、「システム」->「システム管理」->「Synaptic パッケージ・マネージャ」を起動する。

検索ボタンをクリックして「xlib」を検索し、libx11-devを右クリックして、インストールを指定する。(依存するパッケージのインストールを尋ねるpopupではマークをクリックする。)

検索ボタンをクリックして「xext」を検索し、libxext-devを右クリックして、インストールを指定する。(依存するパッケージのインストールを尋ねるpopupではマークをクリックする。)

適用ボタンをクリックし、適用を行う。


Qtの導入

http://trolltech.com/products/qt からQt Open Source Edition for C++ Developers: X11(qt-x11-opensource-src-4.3.4.tar.gz)をダウンロードする。


Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「端末」を起動し、sudo su でrootになる。

vmuser@vmuser-desktop:~$ sudo su

[sudo] password for vmuser:
root@vmuser-desktop:/home/vmuser#



/usr/local/srcに移動してダウンロードしたファイルを解凍する。

root@vmuser-desktop:/home/vmuser# cd /usr/local/src

root@vmuser-desktop:/usr/local/src#
root@vmuser-desktop:/usr/local/src# tar xvf /home/vmuser/download/qt-x11-opensource-src-4.3.4.tar.gz



qt-x11-opensource-src-4.3.4に移動して構成を行う。

root@vmuser-desktop:/usr/local/src# cd qt-x11-opensource-src-4.3.4

root@vmuser-desktop:/usr/local/src/qt-x11-opensource-src-4.3.4# ./configure


途中で表示されるライセンスの質問には yes と答える。


makeを行う。

root@vmuser-desktop:/usr/local/src/qt-x11-opensource-src-4.3.4# make


makeにはかなり時間がかかる。(1時間以上)


installを行う。

root@vmuser-desktop:/usr/local/src/qt-x11-opensource-src-4.3.4# make install



MapnikViewerのビルド

Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「テキスト・エディタ」を起動する。


viewer.proを自分の環境に合わせて変更する。

変更前 変更後

INCLUDEPATH += /opt/mapnik/include
INCLUDEPATH += /opt/boost/include/boost-1_34_1
INCLUDEPATH += /usr/local/include/freetype2
unix:LIBS = -L/opt/mapnik/lib -lmapnik -lfreetype

INCLUDEPATH += /usr/local/include
INCLUDEPATH += /usr/include/boost
INCLUDEPATH += /usr/include/freetype2
unix:LIBS = -L/usr/local/lib -lmapnik -lfreetype


main.cppを自分の環境に合わせて変更する。

変更前 変更後

datasource_cache::instance()->register_datasources("/opt/mapnik/lib/mapnik/input");
freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSans.ttf");
freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSans-Bold.ttf");
freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSansMono.ttf");

datasource_cache::instance()->register_datasources("/usr/local/lib/mapnik/input");
freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSans.ttf");
freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSans-Bold.ttf");
freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSansMono.ttf");


Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「端末」を起動し、sudo su でrootになる。

vmuser@vmuser-desktop:~$ sudo su

[sudo] password for vmuser:
root@vmuser-desktop:/home/vmuser#



/usr/local/src/mapnik-0.5.1/demo/viewerに移動してQmakeとMakeを行う。

root@vmuser-desktop:/home/vmuser# cd /usr/local/src/mapnik-0.5.1/demo/viewer

root@vmuser-desktop:/usr/local/src/mapnik-0.5.1/demo/viewer# /usr/local/Trolltech/Qt-4.3.4/bin/qmake
root@vmuser-desktop:/usr/local/src/mapnik-0.5.1/demo/viewer# make
root@vmuser-desktop:/usr/local/src/mapnik-0.5.1/demo/viewer# ldconfig



MapnikViewerの起動

Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「端末」を起動する。


/usr/local/src/mapnik-0.5.1/demo/viewerに移動し、MapnikViewerを起動する。

vmuser@vmuser-desktop:~$ cd /usr/local/src/mapnik-0.5.1/demo/viewer

vmuser@vmuser-desktop:/usr/local/src/mapnik-0.5.1/demo/viewer$ ./viewer



MapnikViewerの日本語表示

Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「テキスト・エディタ」を起動し、main.cpp (/usr/local/src/mapnik-0.5.1/demo/viewer/main.cpp) を開いて、Mapnikのfontsディレクトリ (/usr/local/lib/mapnik/fonts) に入れた日本語フォントのファイル名を追加する。

追加行

freetype_engine::register_font("/usr/local/lib/mapnik/fonts/ipagui-mona.ttf");



Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「端末」を起動し、sudo su でrootになる。

vmuser@vmuser-desktop:~$ sudo su

[sudo] password for vmuser:
root@vmuser-desktop:/home/vmuser#



/usr/local/src/mapnik-0.5.1/demo/viewerに移動してMakeを行う。

root@vmuser-desktop:/home/vmuser# cd /usr/local/src/mapnik-0.5.1/demo/viewer

root@vmuser-desktop:/usr/local/src/mapnik-0.5.1/demo/viewer# make



MapnikViewerを起動して日本語フォントの表示を確認する。


通常使用しているユーザーに戻り、MapnikViewerを起動する。

root@vmuser-desktop:/usr/local/src/mapnik-0.5.1/demo/viewer# exit

exit
vmuser@vmuser-desktop:/usr/local/src/mapnik-0.5.1/demo/viewer$ ./viewer



Disk space

名称 説明 ファイル/フォルダ 容量(GB)
Ubuntu 8.04 日本語ローカライズドDesktop CD CDイメージ ubuntu-ja-8.04-desktop-i386.iso 0.71
VMware Player 2.0.3 for Windows インストーラー VMware-player-2.0.3-80004.exe 0.18
VMware Player 2.0.3 for Windows 導入先フォルダ C:\Program Files\VMware\VMware Player 0.22
VMX Builder インストーラー VMXBuilderSetup.exe 0.01
VMX Builder 導入先フォルダ C:\Program Files\RDPSoftware\VMware\VMX Builder 0.01
仮想PC(VMware構成ファイル・VMware仮想ディスクファイル・他) 導入先フォルダ C:\vm 6.59
合計 7.72