User:Tatata/Mapnik
このページはTatataが自分のPC (Windows XP + VMware + Ubuntu) でMapnikのsourceをビルドした時の手順などをメモしたものです。
外部向けのサーバーによるサービスのために必要と思われるセキュリティ上の配慮は行っていませんので、外部向けのサーバーにインストールする場合にはアカウント名、パスワード、DB接続設定(password-less connections)、DB名などに注意して下さい。
Contents |
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)の作成を行う。
- Optionsメニューをクリックし、Lanch(VMware Player2の実行ファイルのパス)とCD-ROM image(LinuxのインストールCDなどを置いてあるパス)を設定する。
- Create New Virtual Machineのボタンをクリックして、仮想PCの新規作成を行う。
- Optionsタブで、Host Product(Player,2.x)とGuest OS(Linux,Ubuntu)を選択する。
- Hardwareタブで、Network Adapter(Ethernet,NAT)とHard Diskを追加する 。ネットワーク接続については次のページを参照。http://nobumasa-web.hp.infoseek.co.jp/multi_boot/vmware/vmware.html
- Memoryを128MBから256MBに変更する。(Ubuntu/PostgreSQL/Mapnikのインストールは256MBで行えるが、レンダリングの際に時間が掛かるようであれば、さらに増やした方が良いかも知れない。)
- Disk fileのCreate Newボタンをクリックして仮想ディスクを作成する(IDE,10Gb,Single Growable virtual disk,VMware Type Library)。
- DVD/CD-ROM Drive(CD-ROM)を追加し、ConnectionのUse ISO ImageでインストールCDのイメージを指定する。
- 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. |
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: |
PostgreSQL導入時に自動的に追加されたデータベースの管理ユーザpostgresにパスワードを設定する。
| root@vmuser-desktop:/home/vmuser# passwd postgres 新しいUNIXパスワードを入力してください: |
rootからpostgresになり、通常使用しているユーザーを新たなデータベースユーザとして追加する。
| root@vmuser-desktop:/home/vmuser# exit exit |
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 |
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 |
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: |
/usr/local/srcに移動してダウンロードしたファイルを解凍する。
| root@vmuser-desktop:/home/vmuser# cd /usr/local/src root@vmuser-desktop:/usr/local/src# |
展開されたディレクトリに移動して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 |
国境データと海岸線データを解凍し、一つのディレクトリにまとめる。
| vmuser@vmuser-desktop:~$ tar xzf world_boundaries-spherical.tgz vmuser@vmuser-desktop:~$ unzip processed_p.zip |
OSM files
svnからOSMのmapnik関連ファイルを取得(チェックアウト)する。
| vmuser@vmuser-desktop:~$ svn checkout http://svn.openstreetmap.org/applications/rendering/mapnik A mapnik/convert |
国境データと海岸線データを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 |
道路や駅などの名称を日本語のみの表示にしたい場合は、User:Tatata/Mapnik-Win32#name:jaを参照。
地図の生成
「テキスト・エディタ」でgenerate_tiles.py(タイル生成用スクリプト)又はgenerate_image.py(画像ファイル生成用スクリプト)を開き、生成したいエリアのbounding boxesとzoom levelsを設定する。
generate_tiles.pyの場合はファイルの終わりの方に世界全体の設定と数箇所の都市の設定が書かれているので、使用しないものは全てコメントにして、自分用の設定を追加する。以下の例は東京の「丸の内」。
| # Marunouchi, Tokyo minZoom = 10 |
generate_image.pyの場合は次の通り。(例は東京の「丸の内」。)
| 変更前 | 変更後 |
|---|---|
|
ll = (-6.5, 49.5, 2.1, 59) |
ll = (139.75824, 35.67714, 139.7702, 35.68604) |
スクリプトを実行して地図を生成する。
| 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:~$ python Python 2.5.2 (r252:60911, Apr 21 2008, 11:12:42) |
[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 |
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: |
/usr/local/srcに移動してダウンロードしたファイルを解凍する。
| root@vmuser-desktop:/home/vmuser# cd /usr/local/src root@vmuser-desktop:/usr/local/src# |
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 += /usr/local/include |
main.cppを自分の環境に合わせて変更する。
| 変更前 | 変更後 |
|---|---|
|
datasource_cache::instance()->register_datasources("/opt/mapnik/lib/mapnik/input"); |
datasource_cache::instance()->register_datasources("/usr/local/lib/mapnik/input"); |
Ubuntuのメニューから、「アプリケーション」->「アクセサリ」->「端末」を起動し、sudo su でrootになる。
| vmuser@vmuser-desktop:~$ sudo su [sudo] password for 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 |
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: |
/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 |
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 |