北海道地図株式会社のGISMAP Textureに触発されて、gdalでラスターにテクスチャーを貼るプログラム「gdaltexture」 を作成しましたので紹介します。
使い方(windows環境) ※ソースをコンパイルすれば、linux、macでも可。
- OSGeo4Wをインストールします。(gdal1.8.0)
- ソースと実行ファイルをここからダウンロードください。
- ダウンロードしたgdaltexture.exeをC:\OSGeo4W\binの中に入れます。
- コンソールで以下のように打ち込みます。
- "input.tif"は、値の入ったラスタ。
- "color_text_file.txt"は、ラスタ値とテクスチャ画像を対応付けるファイル。
- "out.tif"は、テクスチャ貼付け後の出力ファイル。
gdaltexture.exe color-relief -texture_color_entry input.tif color_text_file.txt out.tif
gdaltextureの説明
- gdaltextureは、gdal1.8.0に同梱のgdaldem color-reliefにテクスチャ貼りつけ機能を追加したプログラムです。
- gdaldemの機能はそのまま存在しています。
- "-texture_color_entry"のオプションを付けるとテクスチャ貼りつけ機能が有効になります。
- "color_text_file.txt"の中身は、↓こんな感じです。
- ラスタ値とテクスチャ画像のファイル名を並べます。
- gdaldem color-reliefの時と様式は同じです。
- テクスチャの指定と、色の指定を混ぜることも可能です。
- ファイル名に日本語は使えません。
- 相対パスも大丈夫です。(パスに空白があるとダメです。)
0 255 255 255 1 img\1.jpg 2 img\2.jpg 3 0 255 0
使用例
gdaltextureを使って、shpファイル→ラスタに変換→テクスチャ貼りつけ→公開の手順を簡単に紹介します。
natural earthから"Natural Earth quick start kit"をダウンロードして、10m_admin_1_states_provinces_shp.shpからJapanを抜き出しラスタに変換します。
ogr2ogr -where NAME_0='Japan' japan.shp 10m_admin_1_states_provinces_shp.shp gdal_rasterize -tr 0.00625 0.00625 -a OBJECTID -l japan japan.shp japan.tif
テクスチャを用意して、ラスタに変換します。
- テクスチャは、ここから取ってきました。
- color_text_file.txtの中身はこんな感じ。
0 255 255 255 1872 img\32-abstract-textures.jpg 1873 img\32-abstract-textures.jpg ... 以下同様
- gdaltextureで変換。
gdaltexture color-relief -texture_color_entry japan.tif color_text_file.txt texture_test.tif
出来上がったテクスチャ画像を公開できるように変換します。
gdal2tiles -g 自分のgooglemapsAPI texture_test.tif
- 作成されたtexture_testフォルダをサーバーにアップします。
- 出来上がりは、こんな感じ
- 良い使用例とは言えません。。。
その他
- gdaldemとgdaltextureの差分部分のプログラムは、変更するなり、gdalにコミットするなり、ご自由にお使いください。