2008年6月30日月曜日

グラフィカルなデータ表示 2階級区分の色分

シェイプファイルの属性を使って、グラフィカルなデータ表示をします。

人口を階級区分して色分けします。

マップファイルに新しいレイヤを追加します。
cloudsレイヤとcountriesレイヤの間に追加します。

---
LAYER
NAME clouds
TYPE RASTER
STATUS ON
DATA "data/day_clouds.tif"
END

LAYER
NAME totalpop
GROUP totalpop
TYPE polygon #面表示になります
STATUS ON #初期状態 ON:表示 OFF:非表示
DATA "data/freegis_worlddata-0.1_simpl/countries_simpl.shp"
TRANSPARENCY 50 #透過度 0不透明 100完全透明
CLASSITEM "total" #CLASSを使うときのフィールドの属性値の指定
CLASS
NAME "over 100milion" #凡例のタイトルになります
EXPRESSION ([total] >= 100000000) #描画する条件値(式)
COLOR 255 0 0 #塗りつぶし色 RGB 0-255
END
CLASS
NAME "10 to 100milion"
EXPRESSION ([total] <= 100000000 AND [total] >= 10000000) #正しく直しました2009.7.11
COLOR 255 102 102
END
CLASS
NAME "1 to 10milion"
EXPRESSION ([total] <= 10000000 AND [total] >= 1000000) #正しく直しました2009.7.11
COLOR 255 204 204
END
END

LAYER
NAME countries
---


しかし、このままでは半透明になりませんでした。
TRANSPARENCYはrasterレイヤに対して透過度を調整できるようです。
これはMapServerでそうなのか、ka-Mapだけなのかは分かりませんでした。
totalpopレイヤのGROUPを削除してcloudsレイヤとBASEレイヤを構成するか、次のようにcloudsレイヤと同じ内容で clouds2レイヤを追加し、totalpopレイヤと同じGROUP名にするとTRANSPARENCYが有効になります。
(MapServer5では、OPACITYの使用が推奨されています。使い方は同じです。)

global.mapの全体は次のようになります。


MAP
NAME global_map
STATUS ON
SIZE 600 300
EXTENT -180 -90 180 90
UNITS DD
IMAGECOLOR 255 255 255
IMAGETYPE png

WEB
IMAGEPATH "/home/nob61/ka-map/htdocs/tmp/kacache/"
IMAGEURL "/ka-map/tmp/kacache/"
END

LEGEND
TRANSPARENT TRUE
END

SCALEBAR
TRANSPARENT TRUE
END

REFERENCE
EXTENT -180 -90 180 90
SIZE 241 121
IMAGE data/keymap.jpg
COLOR -1 -1 -1
OUTLINECOLOR 255 0 0
END

LAYER
NAME clouds
TYPE RASTER
STATUS ON
DATA "data/day_clouds.tif"
END

LAYER
NAME clouds2
GROUP totalpop
TYPE RASTER
STATUS ON
DATA "data/day_clouds.tif"
END

LAYER
NAME totalpop
GROUP totalpop
TYPE polygon
STATUS ON
DATA "data/freegis_worlddata-0.1_simpl/countries_simpl.shp"
TRANSPARENCY 50
CLASSITEM "total"
CLASS
NAME "over 100milion"
EXPRESSION ([total] >= 100000000)
COLOR 255 0 0
END
CLASS
NAME "10 to 100milion"
EXPRESSION (([total] <= 10000000) AND ([total] >= 1000000)) #正しく直しました2009.7.11
COLOR 255 102 102
END
CLASS
NAME "1 to 10milion"
EXPRESSION ([total] <= 1000000) #正しく直しました2009.7.11
COLOR 255 204 204
END
END

LAYER
NAME countries
TYPE LINE
STATUS ON
DATA "data/freegis_worlddata-0.1_simpl/countries_simpl.shp"
LABELITEM "NAME"
METADATA
"queryable" "true"
"searchfield" "name"
"fields" "name:Name,total:population" #total:populationを追加(global_template.htmlも修正してください。) 正しく直しました2009.7.11
END
CLASS
NAME "Country Boundaries"
STYLE
COLOR 200 100 100
END
END
TEMPLATE global_template.html
END
END


2008年6月29日日曜日

グラフィカルなデータ表示 1情報の確認

シェイプファイルの属性を使って、グラフィカルなデータ表示をします。

最初に、マップデータcountries_simplの情報を知るために管理ツールをインストールします。
Synapticパッケージマネージャでgdal-binを検索してインストールします。

dataフォルダへ移動しfreegis_worlddata-0.1_simplフォルダ内の利用可能なレイヤ名を表示します。

~/ka-map/htdocs/data$ ogrinfo freegis_worlddata-0.1_simpl
INFO: Open of `freegis_worlddata-0.1_simpl'
using driver `ESRI Shapefile' successful.
1: countries_simpl (Polygon)
2: population (None)
3: code3166tofibs (None)

次に、populationレイヤのデータを表示します。

~/ka-map/htdocs/data$ ogrinfo -summary freegis_worlddata-0.1_simpl countries_simpl
INFO: Open of `freegis_worlddata-0.1_simpl'
using driver `ESRI Shapefile' successful.

Layer name: countries_simpl
Geometry: Polygon
Feature Count: 3901
Extent: (-179.999900, -89.999900) - (179.999900, 83.627357)
Layer SRS WKT:
(unknown)
gid: Real (11.0)
cat: Real (11.0)
fibs: String (2.0)
name: String (255.0)
f_code: String (255.0)
total: Real (11.0)
male: Real (11.0)
female: Real (11.0)
ratio: Real (24.15)

summaryオプションをつけないとレイヤの詳細すべてを表示します。が、データが多いので国名のオプションをつけて表示します。

~/ka-map/htdocs/data$ ogrinfo freegis_worlddata-0.1_simpl countries_simpl -where "name='Nepal'"
INFO: Open of `freegis_worlddata-0.1_simpl'
using driver `ESRI Shapefile' successful.

Layer name: countries_simpl
Geometry: Polygon
Feature Count: 1
Extent: (-179.999900, -89.999900) - (179.999900, 83.627357)
Layer SRS WKT:
(unknown)
gid: Real (11.0)
cat: Real (11.0)
fibs: String (2.0)
name: String (255.0)
f_code: String (255.0)
total: Real (11.0)
male: Real (11.0)
female: Real (11.0)
ratio: Real (24.15)
OGRFeature(countries_simpl):3039
gid (Real) = 39788
cat (Real) = 169
fibs (String) = NP
name (String) = Nepal
f_code (String) = FA001
total (Real) = 27070666
male (Real) = 13897249
female (Real) = 13173417
ratio (Real) = 105.500000000000000
POLYGON ((82.503806999999995 ...(続く)

このうち、totalが総人口、maleが男、femaleが女の人口です。

2008年6月26日木曜日

ka-Mapの機能 3Search検索

バージョン1.0またはCVSで動作します。

Main Page/ja-Ka-Map Wiki
http://ka-map.ominiverdi.org/wiki/index.php/Main_Page/ja

の ユーザーガイド の Search System - 検索したデータの位置へパン・ズームするための設定 をクリックします。


ここには、サーチシステムを動作させる方法が書いてあります。
クエリを設定してある場合は次の行をマップファイル(global.map)のメタデータ(METADATA)に追加するだけです。

"searchfield" "name"

countries レイヤのコードは次のようになります。

---
LAYER
NAME countries
GROUP countries
TYPE LINE
STATUS ON
DATA "data/freegis_worlddata-0.1_simpl/countries_simpl.shp"
METADATA
"queryable" "true"
"searchfield" "name" #ここを追加
"fields" "name:Name"
END
CLASS
NAME "Country Boundaries"
STYLE
COLOR 200 100 100
END
END
TEMPLATE global_template.html
END
---

ツールバーの双眼鏡アイコンをクリックしてください。
左側に入力欄が表示されます。


国名を入力してSearchボタンをクリックします。
結果は下に表示されます。

2008年6月25日水曜日

ka-Mapの機能 2Query クエリ

Query クエリ
日本語になりにくい言葉ですが、敢えてあてはめれば「問い合わせ」機能というところでしょうか。
クリックしたところの情報が表示されます。



クリック前




i アイコンをクリック後




地図をクリック後



Main Page/ja-Ka-Map Wiki
http://ka-map.ominiverdi.org/wiki/index.php/Main_Page/ja


の ユーザーガイド の Query - How to setup a ka-Map! point and click query information system using the maps legend "i" icon をクリックします。
(地図の凡例"i"アイコンを使った、任意の場所を指してクリックするka-Mapのクエリ情報システムのセットアップ)

ここには、クエリシステムを動作させる方法が書いてあります。
Mapfile Query Configuration for ka-Map!(ka-Mapのためのマップファイルクエリ設定)に書かれている設定でクエリ機能を有効にします。

global.mapを例にしてみます。
countriesレイヤにMETADATAオブジェクトを追加して

"queryable" "true"

を追加します。
このとき、このマップファイルのレイヤがクエリ可能なka-Mapのレイヤとして機能するためにグループ(GROUP)を定義してください。

---
LAYER
NAME countries
GROUP countries #必須
TYPE LINE
STATUS ON
DATA "data/freegis_worlddata-0.1_simpl/countries_simpl.shp"
METADATA #ここを追加
"queryable" "true" #ここを追加
END #ここを追加
CLASS
NAME "Country Boundaries"
STYLE
COLOR 200 100 100
END
END
END
---

さらに、Using MapServer's Templating System for Queriesを参考にクエリテンプレートを追加します。
global.mapと同じフォルダに次の内容でglobal_template.html(ファイル名は任意)作成してください。

<html>
<head><title>Global Template</title></head>
<body>
<li> [name]
</body>
</html>

name freegis_worlddata_0.1 -simplの属性の名前。 nameという項目名で国名が設定されてます。

global.mapに次の行を追加します。

TEMPLATE global_template.html

Ominiverdi's query systemを参考にglobal.mapのメタデータ(Metadata)に次の行を追加します。

fields "name:Name"

countries レイヤのコードは次のようになります。


---
LAYER
NAME countries
GROUP countries #必須
TYPE LINE
STATUS ON
DATA "data/freegis_worlddata-0.1_simpl/countries_simpl.shp"
METADATA #ここを追加
"queryable" "true" #ここを追加
fields "name:Name" #ここを追加
END ここを追加
CLASS
NAME "Country Boundaries"
STYLE
COLOR 200 100 100
END
END
TEMPLATE global_template.html
END
---

Webブラウザを再読み込みしてください。
グループ(レイヤ)名左側の青丸のアイコンの赤い禁止マークが消えています。
iアイコンをクリックして地図の陸地をクリックすると左側にクエリの結果が表示されます。
(地図が変わらないときは一時保存フォルダの画像を削除してみてください。
/home/user#rm -r ka-map/htdocs/tmp/kacache/weather
また、Webブラウザのキャッシュも消去してみてください。
FireFoxの場合 ツール->プライバシー情報の消去->キャッシュだけチェック->今すぐ消去)

2008年6月23日月曜日

ka-Mapの機能 1レイヤーの表示・非表示



レイヤを個別に表示・非表示ができます。

Main Page/ja-Ka-Map Wiki
http://ka-map.ominiverdi.org/wiki/index.php/Main_Page/ja

の  ユーザーガイド の Layers - レイヤーの表示・非表示を切り替えるための設定 をクリックします。

ここに書かれているようにマップファイルを編集してみます。
global.mapを例にしてみます。

最初のTRANCEPARENTは追加しません。

レイヤ(LAYER)セクションにグループ(GROUP)を次のように追加します。
これによって、ka-Map左側の凡例にレイヤグループを追加します。

---
LAYER
NAME countries
GROUP countries #ここを追加
TYPE LINE
---



Webブラウザを再読み込みしてください。

レイヤ名の左側のチェックボックスで表示・非表示操作ができます。

レイヤ名の一番左側の +、- でクラス名の表示・非表示操作ができます。



(地図が変わらないときは一時保存フォルダの画像を削除してみてください。
/home/user#rm -r ka-map/htdocs/tmp/kacache/weather
また、Webブラウザのキャッシュも消去してみてください。
FireFoxの場合 ツール->プライバシー情報の消去->キャッシュだけチェック->今すぐ消去)

2008年6月22日日曜日

ka-Map 8テストの修正2

さらに、次の方法を試しました。
Webブラウザを起動してアドレスバーに次のように入力してEnterキーを押してください。

http://localhost/ka-map/tile.php

すると次のように表示されます。

Warning: dl() [function.dl]: Unable to load dynamic library '/usr/lib/php5/20060613+lfs/php_gd.so' - /usr/lib/php5/20060613+lfs/php_gd.so: cannot open shared object file: No such file or directory in /home/nob61/ka-map/htdocs/tile.php on line 212

Fatal error: Call to undefined function imagecreatefrompng() in /home/user/ka-map/htdocs/tile.php(292) : eval()'d code on line 1

エラーメッセージの一部(Unable to load dynamic library)でググると、この後に続く拡張モジュールが設定されていないようなので確認します。

~$ls /usr/lib/php5/20060613+lfs/
(rootでも一般ユーザでもどちらでもOK)
pdo.so
php_mapscript.so

php_gd.soがないのでSynapticパッケージマネージャで検索します。
(何も結果が表示されないときは、php_gdとかphp gdなどとしてみてください。)
php5-gdがインストールされていなければ、インストールします。
Apacheを再起動して

#/etc/ini.d/apache2 restart

Webブラウザを起動してアドレスバーに次のように入力してEnterキーを押してください。

http://localhost/ka-map/tile.php

画像が表示されればOKです。
Webブラウザを起動してアドレスバーに次のように入力してEnterキーを押してください。

http://localhost/ka-map/

図のように地図が表示されればOKです。

2008年6月21日土曜日

ka-Map 7テストの修正1

http://localhost/ka-map/init.phpを表示してみます。

Main Page/ja-Ka-Map Wiki
http://ka-map.ominiverdi.org/wiki/index.php/Main_Page/ja
の マニュアル の Troubleshooting/ja トラブルシューティング(日本語)
を参考にしました。

Webブラウザのアドレスバーに次のように入力してEnterキーを押します。

http://localhost/ka-map/init.php

すると次のように表示されます。

Warning: dl() [function.dl]: Dynamically loaded extensions aren't enabled in /home/user/ka-map/htdocs/init.php on line 126

Fatal error: Call to undefined function ms_newMapObj() in /home/user/ka-map/htdocs/init.php on line 132

最初は、init.phpの126行目と132行目に関係する設定を見直していました。
でも、なかなか直らないので、エラーメッセージの一部(Dynamically loaded extensions aren't enabled)でググると同じような質問をしているメーリングリストが検索されました。
その回答のなかの一つに、php.iniのenable_dl=Onにすることでエラーが表示されなくなりました、とありました。

最初に、Webブラウザのアドレスバーに http://localhost/phpinfo.php と入力してEnterキーを押します。
次に、enable_dlがOffになっていることを確かめます。
次に、php.iniのディレクトリを確かめます。(/etc/php5/apache2/php.ini)
rootでエディタを使ってenable_dl=Onにして保存します。
(マニュアルによるとdlはphp5では非推奨になっています。php6では装備されない予定です。)

Apacheを再起動して

#/etc/ini.d/apache2 restart

Webブラウザを起動してアドレスバーに次のように入力してEnterキーを押してください。

http://localhost/ka-map/init.php

ka-Mapの設定条件が表示されますが、エラー表示はなくなりました。
Webブラウザを起動してアドレスバーに次のように入力してEnterキーを押してください。

http://localhost/ka-map/

左側のマップインフォが表示されました。
画像は描画しようとしていますが、何も表示されません。



続く...

ka-Map 6テスト

ka-Mapのテスト

Main Page/ja-Ka-Map Wiki
http://ka-map.ominiverdi.org/wiki/index.php/Main_Page/ja


の マニュアル の Testing the Basic Application/ja 基本アプリケーションのテスト(日本語) をクリックします。

基本アプリケーションのテスト の マップのロード にしたがって操作します。
Webブラウザを起動してアドレスバーに次のように入力してEnterキーを押してください。

http://localhost/ka-map/



図のような画面になったでしょうか。
私も、Not Found や フォルダやファイルのリストが表示されたり、何も表示されなかったりしたことがありました。
もし、そのようになったら次のことを試してみてください。

1 apacheを再起動してみます。(#/etc/init.d/apache2 restart)
2 apacheの設定(sites-available/kamap)を確認します。
3 ka-Mapの設定(config.php)を確認します。
4 global.mapの確認(shp2img -m global.map -o test.png)をします。
5 フォルダの配置を確認します。

WebブラウザにFireFox(Debianはiceweasel)のアドオンにFirebugを設定しておくと、参考になるエラー情報が得られることがあります。


ka-Mapは表示されましたが、地図は表示されていません。
まだ、いくつか設定を修正する必要がありました。

続く...

2008年6月19日木曜日

ka-Map 5config.phpの設定など

ka-Map設定ファイル のconfig.phpの修正の前に次の操作をします。
ka-map/includeディレクトリにconfig.dist.phpファイルがあるので、同じディレクトリにconfig.phpという名前でコピーします。

~$cp ka-map/include/config.dist.php ka-map/include/config.php

ライブラリポインタの設定 の通りにconfig.phpを修正していきます。
(vimなどエディタを使い慣れていない人は、使い慣れた操作ができるテキスト・エディタで起動します。
アプリケーション−アクセサリ−テキスト・エディタ [一般ユーザでOK])

$szPHPMapScriptModule = 'php_mapscript_46.'.PHP_SHLIB_SUFFIX;
->$szPHPMapScriptModule = 'php_mapscript.'.PHP_SHLIB_SUFFIX;

他は修正しません。
mapファイルを追加する は次のようにしてください。
gmapの部分はつぎのようにすべてコメントアウトします。

/* $aszGMap = array (
* 'title' => 'GMap 75',
* 'path' => '../../gmap/htdocs/gmap75.map',
* 'scales' => array( 40000000, 25000000, 12000000, 7500000, 3000000, 1000000 ),
* 'format' =>'PNG'
* Sample authorized_users entry. See auth.php for more details:
* ,'authorized_users' => array('popplace' => array('user1', 'user2'),
* 'park' => array('user1')
*
*);
*/

global.map用に次のように追加します。
userは自分の環境に合わせて換えます。

$aszWeather = array (
'title' => 'Global Weather',
'path' => '/home/user/ka-map/htdocs/global.map',
'scales' => array( 100000000, 50000000, 15000000 ),
'format' =>'PNG'
);

$aszMapFilesをつぎのように修正します。

$aszMapFiles = array( /* 'gmap' => $aszGMap */
               'weather' => $aszWeather

/* Add more elements to this array to offer multiple mapfiles */

);

$szMapをつぎのように修正します。

/* $szMap = 'gmap'; */
$szMap = 'weather';

$szBaseCacheDir(画像一時保存フォルダ)を次のように修正します。

$szBaseCacheDir = "/tmp/kacache/";
-> $szBaseCacheDir = "/home/user/ka-map/htdocs/tmp/kacache/";


今まで自分の環境に合わせて設定をしていたので、global.mapの記述に修正が必要な箇所があります。
ka-map/htdocs/global.mapの次の行を修正します。userは自分の環境に合わせて換えます。

WEB
IMAGEPATH "/opt/fgs/apps/kamap-0.1.1/htdocs/tmp/"
-> IMAGEPATH "/home/user/ka-map/htdocs/tmp/kacache/"
IMAGEURL "/ka-map/tmp/"
-> IMAGEURL "/ka-map/tmp/kacache/"
END

ka-Mapはパーミッションに問題なければ画像一保存フォルダを自動的に作成します。
また、マップファイルのIMAGEPATHやIMAGURLが正しくなくても地図を表示します。
地図の表示が成功した後、もう一度設定を確認してください。

2008年6月18日水曜日

ka-Map 4Apacheの設定

Webサーバ・エイリアス にあるように、手動でApacheの設定をします。
設定ファイルは次のディレクトリにあります。

#ls /etc/apache2/sites-available
default

有効になっているファイルは次のディレクトリで分かります。

#ls /etc/apache2/sites-enabled
000-default

defaultファイルをkamapという名前でコピーして修正します。
コピーに問題があった場合にdefaultを有効にしなおします。

#cp /etc/apache2/sites-available/default /etc/apache2/sites-available/kamap

kamapファイルに次のように追加します。userの部分は自分の環境に合わせて換えてください。
(vimなどエディタを使い慣れていない人は
#gedit /etc/apache2/sites-available/kamap
で使い慣れた操作ができるテキスト・エディタが起動します。)

<VirtualHost>
---
Alias /ka-map/ "/home/user/ka-map/htdocs/"
<Directory /home/user/ka-map/htdocs/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
---
</VirtualHost>

defaultの設定を無効にして、kamapの設定を有効にします。

#a2dissite default
#a2ensite kamap

続く...

2008年6月17日火曜日

ka-Map 3ka-Mapのインストールと設定

ka-Mapをインストールします。

Main Page/ja-Ka-Map Wiki
http://ka-map.ominiverdi.org/wiki/index.php/Main_Page/ja

の マニュアル の Preparing ka-Map/ja ka-Map!の準備(日本語) をクリックします。
パッケージは

gzで圧縮されたtarアーカイブ
zipアーカイブ
オンラインCVSリポジトリー

があります。CVSバージョンをインストールしてみました。
SynapticパッケージマネージャでCVSクライアントをインストールします。
cvsを検索してcvsをインストール指定します。
server_pathの右側のリンクをクリックするとka-Map-CVSページに移動するので、端末(ターミナル)を起動して例にしたがって入力してダウンロードします。

cvs -d:pserver:cvsanon@cvs.maptools.org:/cvs/maptools/cvsroot checkout "ka-map"

インストールが終わると ka-map フォルダが作成されます。
(上のコマンドの chekout の後の ka-map がフォルダ名になります。)

~$ls
---
data
global.map
ka-map
---

ka-map フォルダ構造を確かめます。

~$ls ka-map/
---
htdocs
include
---

マップファイル(global.map)とdataフォルダをhtdocsフォルダに移動します。

~$mv global.map ka-map/htdocs/
~$mv data/ ka-map/htdocs/

セキュリティ上の注意 にも目を通しておいてください。
ka-Mapで地図が表示できたら後でやってみます。
MapServerが生成する画像を保存する一時保存フォルダをhtdocsに作成します。

~$mkdir ka-map/htdocs/tmp

Root Terminalで所有者とグループをMapServerがこのフォルダに画像を保存できるようにwww-dataにします。

home/user/#chown www-data:www-data ka-map/htdocs/tmp

続く...

2008年6月16日月曜日

ka-Map 2マップデータとマップファイルの準備

必要なパッケージが準備できたので、マニュアルを進めていきます。
マニュアル の ■Preparing MapServer/ja マップサーバの準備(日本語) をクリックします。

マップサーバーの準備とマップスクリプト・プログラミング・ライブラリは準備できています。
参考に読んでみてください。

データの準備 の1番目の here のリンクが切れているので次のサイトからダウンロードします。

http://ftp.intevation.de/freegis/worlddata/

の freegis_worlddata-0.1_simpl.tar.gz をクリックしてダウンロードしてください。
3番目の here をクリックして cloud_image.zip をダウンロードします。
両方をdataフォルダに解凍します。
(一般ユーザでダウンロードしたファイルをdataフォルダに解凍します。)
端末(terminal:ターミナル)で

~$mkdir data
~$mv Desktop/freegis_worlddata-0.1_simpl.tar.gz data/
~$mv Desktop/cloud_image.zip data/
~$cd data
~/data$unzip cloud_image.zip
~/data$tar zxvf freegis_worlddata-0.1_simpl.tar.gz
~/data$ls
cloud_image.zip
day_cloud.twf
day_cloud.tif
freegis_worlddata_simpl/
freegis_worlddata_simpl.tar.gz

freegis_worlddata-0.1_simplが国境ファイルがあるフォルダ、day_cloud(.twf,.tif)が画像ファイルとそのデータです。

マップサーバーの設定 のコードをglobal.mapという名前のファイルで保存します。
次の行を修正してください。

DATA "data/countries_simpl.shp"
 ->DATA "data/freegis_worlddata-0.1_simpl/countries_simpl.shp"

後で他にも修正するところがありますが、今のところはこのまま保存します。
ディレクトリの構成は次の様になります。

global.map
data/day_cloud.twf
data/day_cloud.tif
data/freegis_worlddata-0.1_simpl/

マップファイルのテスト のように端末(terminal:ターミナル)で入力してEnterキーを押します。

~$shp2img -m global.map -o test.png

bash: shp2img: command not foundと表示されたらSynapticパッケージマネージャでmapserver-binをインストールします。
エラーが表示されなければ、test.pngが作成されます。
画像ビューアで表示してみます。
(アプリケーション−グラフィックス−画像ビューア)

2008年6月15日日曜日

ka-Map 1インストールの準備

ka-Mapを使うと自分でHTMLファイルを作らなくても、いろいろな機能が用意できます。
ka-Map Wiki 日本語ページを参考にインストールしてみました。

Main Page/ja-Ka-Map Wiki
http://ka-map.ominiverdi.org/wiki/index.php/Main_Page/ja

このページには、ka-Mapの概要が載っています。
このページをさっと目を通しておきましょう。

ka-Map!について に公式サイトのリンクがあるのでちょっと覗いてみましょう。

ka-Map.MapTools.org
http://ka-map.maptools.org/

英語が分からない人も雰囲気を感じてください。
(ka-Map!そのものと同じくらいクールなサイトを期待していたからかもしれませんがちょっと寂しいサイトだと感じました。)

その下の特徴に必要なパッケージがあります。
このうち、MapServerの章で地図を表示していればApacheとMapServerは準備できています。
Synapticパッケージマネージャでphp5を検索してphp5とphp5-mapscriptをインストールします。
PHPが動作しているかを確認するために次の内容のphpinfo.phpファイルをWebブラウザで表示します。
phpinfo.phpファイルは/var/wwwに作成します。

<?php phpinfo() ?>

Webブラウザのアドレスバーに次のように入力してEnterキーを押します。

http://localhost/phpinfo.php

次のようなページが表示されなければApacheを再起動してください。
Root Terminalで次のように入力しEnterキーを押します。

#/etc/init.d/apache2 restart

2008年6月13日金曜日

MapServerの確認(地図の表示)

地図の表示
MapServerサイトのデモデータを使って地図を表示します。
次のサイト

New Users (MapServer New Users)英語
http://mapserver.gis.umn.edu/new_users

の 5.2 Get Demo Running 章の MapServer Demo の文字をクリックしてデータをダウンロードします。
ダウンロードしたファイル workshop-5.0.zip を解凍します。
(2009.7.6 現在 http://www.mapserver.org/introduction.html#get-demo-running の MapServer Demo リンクからダウンロードするようになっていました。)

workshop-5.0/indx.htmlの次の行を変更します。

// EDIT THE NEXT 2 LINES TO MATCH YOUR SETUP
var snippet = "IMAGEPATH '/var/www/docs_maps/tmp/'";
->var snippet = "IMAGEPATH '/var/www/ms_tmp/'";
snippet += " IMAGEURL '/tmp/'";
->snippet += " IMAGEURL '/ms_tmp/'";

---

<!-- EDIT THE FORM ACTION -->
<form name="demo" method="get" action="/cgi-bin/mapserv50" onsubmit="configure()">
-><form name="demo" method="GET" action="/cgi-bin/mapserv" onSubmit="configure()">

---

<!-- EDIT THESE HIDDEN VARIABLES -->
<input name="map" value="/usr/local/www/docs_maps/mapserver_demos/workshop-5.0/itasca.map" type="hidden">
-><input name="map" value="/var/www/workshop-5.0/itasca.map" type="hidden">
<input name="program" value="/cgi-bin/mapserv50" type="hidden">
-><input name="program" value="/cgi-bin/mapserv" type="hidden">
<input name="root" value="/mapserver_demos/workshop-5.0" type="hidden">
-><input name="root" value="/workshop-5.0" type="hidden">


workshop-5.0フォルダを/var/wwwにrootでコピーします。

#cp -r workshop-5.0 /var/www/

Webブラウザのアドレスバーに次のように入力してEnterキーを押します。

http://localhost/workshop-5.0/index.html

ページが表示されたら Initialize ボタンをクリックします。
地図が表示されたら成功です。

2008年6月12日木曜日

MapServerのインストール

インストールは、Synapticパッケージマネージャを使います。
mapserverを検索して、cgi-mapserverをインストール指定します。
依存により要求された変更を追加しますか?と表示されたら、このままマークボタンをクリックします。
適用ボタンをクリックします。
以下の変更を適用しますか?と表示されたら、適用ボタンをクリックします。
インストールが終わったら、変更を適用しました。と表示されるので閉じるボタンをクリックします。

MapServerの設定
インストール後は自動的に起動しています。
次の手順で確かめます。
Webブラウザ(Iceweasel[FireFoxのDebian版])を起動します。
アドレスバーに次のように入力してEnterキーを押します。

http://localhost/cgi-bin/mapserv

No query infomation to decode. QUERY_STRING is set, but empty.と表示されればOK。

MapServerでは、表示するための画像が生成されますが、これを保存する一時保存フォルダを作成します。
場所はDocumentRootのwwwフォルダ以下になります。
次のように入力してEnterキーを押します。

#mkdir /var/www/ms_tmp

次のように入力すると所有者(オーナ)とグループが表示されます。

#ls -l /var/www
---
drwxr-xr-x 2 root root 4096 2008-06-02 14:49 ms_tmp
---

MapServerがこのフォルダに画像を保存できるようにするには、所有者とグループをwww-dataにします。

#chown www-data:www-data /var/www/ms_tmp

このフォルダの所有者とグループを確かめてみます。

#ls -l /var/www
---
drwxr-xr-x 2 www-data www-data 4096 2008-06-02 14:49 ms_tmp
---

2008年6月11日水曜日

Apacheのインストールと設定

Apacheをインストールします。
インストールは、Synapticパッケージマネージャを使います。
apache2を検索して、apache2をインストール指定します。
依存により要求された変更を追加しますか?と表示されたら、このままマークボタンをクリックします。
適用ボタンをクリックします。
以下の変更を適用しますか?と表示されたら、適用ボタンをクリックします。
インストールが終わったら、変更を適用しました。と表示されるので閉じるボタンをクリックします。

インストール後は自動的に起動しています。
次の手順で確かめます。
Webブラウザ(Iceweasel[FireFoxのDebian版])を起動します。
アプリケーション−インターネット−Iceweaselウェブ・ブラウザまたはパネルのショートカット
アドレスバーに次のように入力してEnterキーを押します。

http://localhost/

It works!と表示されればOK。


Apacheを設定します。
設定ファイルを見てみましょう。
Root Terminalを起動します。(一般ユーザでsuでもOK。)パスワードを聞いてきたら、rootのパスワードを入力してください。
エディタ(私はvimを使っています。)で次のファイルを開きます。
/etc/apache2/sites-available/default
(#vim /etc/apache2/sites-available/default と入力してEnterキーを押します。
最初の#はrootを表していて(一般ユーザは$)、初めから表示されているので、続けてvim、1つスペースを入れてそれ以降を入力します。)
DocumentRootのディレクトリのファイルがブラウザで表示されます。

DocumentRoot /var/www/

次のように入力して終了します。

:q

このディレクトリのリストを表示してみます。

#ls /var/www/
index.html

http://localhost/で表示されたファイルがこれになります。

エディタで次のファイルを開きます。
/etc/apache2/envvars
export APACHE_RUN_USERのユーザwww-dataがApacheユーザになります。
この場合グループもwww-dataです。

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

エディタを終了します。

2008年6月10日火曜日

Debianのインストール 5テーマ、効果音など



おまけ
◆画面の解像度を変える
モニタの解像度(1280x1024)より少し小さめにします。
画面の解像度を起動します。
システム->設定->画面の解像度
「解像度」1152x864を選択、「適用」ボタンをクリック。
「この解像度を使用しますか」で「この解像度を使用する」ボタンをクリック。

◆「パネル」によく使うソフトを追加する。
「パネル」を右クリックして「パネルへ追加」をクリックします。
「アプリケーションのランチャ...」をクリックして「進む」ボタンをクリックます。
「インターネット」の左側の三角をクリックし表示された「iceweasel」をクリック、「追加」ボタンをクリックします。
「閉じる」ボタンをクリックし終了します。

◆アイコンを変える。
「Gnome Art」サイトにアクセスします。
例えば、私のお気に入り「Jini Icon」を検索します。
JiniIconThemeをダウンロードします。
外観の設定を起動します。
システム->設定->外観の設定
「インストール」ボタンをクリックします。
「テーマの選択」画面でダウンロードしたファイルを選択し「開く」ボタンをクリックします。
「新しいテーマのインストールが完了しました。」の「OK」ボタンをクリックします。
アイコンの選択:「カスタマイズ」ボタン->「アイコン」タブ->「JiniBlueSky」(ここで時間がかかります)->「閉じる」ボタン。
セットを保存:別名で保存ボタン->「名前」入力(ClearLook+JiniIconBlueSky)->保存ボタン
「外観の設定」の「閉じる」ボタンをクリック。

◆効果音をつける
gnome-audioをインストールします。
Synapticパッケージマネージャを起動します。
「検索」ボタンをクリックして「検索」欄に「gnome-audio」と入力し「検索」
ボタンをクリックします。
gnome-audioの左側の□をクリックして「インストール指定」をクリックします。
「適用」ボタンをクリックします。
「以下の変更を適用しますか?」と出たら「適用」をクリックします。
「変更を適用しました」と出たら「閉じる」をクリックします。
「Synapticパッケージマネージャ」を終了します。
サウンドを起動します。
システム->設定->サウンド
「効果音の設定」で「サウンド」タブの「ソフトウェアによるサウンド・ミキシング(ESD)を有効にする」と「効果音を鳴らす」をチェックします。
「閉じる」ボタンをクリックします。

Debianの強制終了
VMWareで強制終了するときは、タイトルバーのVMware Playerの右側の▼三角をクリック‐トラブルシューティング‐パワーオフして終了をクリックしてください。

2008年6月9日月曜日

Debianのインストール 4etchからlennyへ

ここで4時間ぐらいかかりました。
Root Terminalで/etc/apt/sources.listを開きます。

home/user#vim /etc/apt/sources.list

etchをlennyにします。また、lenny以降を次のようにします。

deb http://ftp.jpdebian.org/debian/ lenny main contrib non-free

また、次の行を追加してください。

deb http://ftp2.jpdebian.org/debian/ lenny main contrib non-free

全体で次のようになります。

deb http://ftp.jp.debian.org/debian/ lenny main contrib non-free
deb http://ftp2.jp.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

保存して終了します。


「Synapticパッケージマネージャ」を起動します。
「パッケージ情報を読み取れません」と表示されたら「閉じる」をクリックします。
パッケージ情報の再読込をクリックします。
編集->パッケージ情報の再読込
「Synapticパッケージマネージャ」を終了します。

パッケージの更新
セキュリティ関連など、インストールされているソフトが更新されているのでアップデートします。
上のパネルのオレンジ色(グレーになっているかも)のアイコン、パッケージマネージャをクリックします。
パスワードを入力する画面になるので、rootのパスワードを入力してOKをクリックします。

Cannot install all available updates と出たら、あとで、Synapticパッケージマネージャでインストールするので閉じます。
You can install ** updatesでInstall Updatesをクリックします。
「***を設定しています」と出たら「進む」をクリックします。
「完了」したら「閉じる」をクリックします。

「Synapticパッケージマネージャ」を起動します。
システム->システム管理->Synapticパッケージマネージャ

「Granted permissions without asking for password」と出たら「閉じる」をクリックします。
「簡単な紹介」が出たら「閉じる」をクリックします。

「状態」ボタンをクリックします。「インストール済み(アップグレード可能)」をクリックするとみアップグレードパッケージが表示されます。
「全てアップグレード」ボタンをクリックします。
「依存により要求された変更を追加しますか?」と表示されたら「マーク」をクリックします。
「適用」ボタンをクリックします。
「以下の変更を適用しますか?」と出たら「適用」をクリックします。
「変更を適用しました」と出たら「閉じる」をクリックします。
「Synapticパッケージマネージャ」を終了します。


私の場合は、直接lennyをインストールすると「画面の解像度」の設定ができなかったり、効果音が出なかったり、うまくいきませんでした。
時間はかかりますが、この通りにインストールすることになりました。

2008年6月8日日曜日

Debianのインストール 3パッケージの更新

Debian起動
インストール中に設定した「ユーザ名」と「パスワード」を入力

パッケージの更新(ここで4時間かかりました。)
セキュリティ関連など、インストールされているソフトが更新されているのでアップデートします。
上のパネルのオレンジ色(グレーになっているかも)のアイコン、パッケージマネージャをクリックします。
パスワードを入力する画面になるので、rootのパスワードを入力してOKをクリックします。

Cannot install all available updates と出たら、あとで、Synapticパッケージマネージャでインストールするので閉じます。
You can install ** updatesでInstall Updatesをクリックします。
「***を設定しています」と出たら「進む」をクリックします。
「完了」したら「閉じる」をクリックします。


「Synapticパッケージマネージャ」を起動します。
システム->システム管理->Synapticパッケージマネージャ

「Granted permissions without asking for password」と出たら「閉じる」をクリックします。
(root権限が必要なソフトを起動すると他のroot権限が必要なソフトを起動したときに出てきます。)
「簡単な紹介」が出たら「閉じる」をクリックします。

「状態」ボタンをクリックします。「インストール済み(アップグレード可能)」をクリックするとみアップグレードパッケージが表示されます。
「全てアップグレード」ボタンをクリックします。
「依存により要求された変更を追加しますか?」と表示されたら「マーク」をクリックします。
「適用」ボタンをクリックします。
「以下の変更を適用しますか?」と出たら「適用」をクリックします。
「変更を適用しました」と出たら「閉じる」をクリックします。
「Synapticパッケージマネージャ」を終了します。


これでetchに対する更新が完了しました。
MapServerのバージョンは4.10.*になります。
しかし、ka-Mapのバージョン1.0を使用するにはMapServerのバージョンが5.0以上が必要と書いてありました。
そのため、Debianの次期バージョンlennyにする必要があります。
次回は、lennyにバージョンアップします。

2008年6月7日土曜日

Debianのインストール 2インストール

インストールの前にdebian.vmxの内容を自分の環境に合わせます。
次の行は私の例を示しておきます。

---
ide1:0.fileName = "D:¥vmware¥debian¥debian-40r3-i386-netinst.iso"
---

このdebian.vmxのファイルをダブルクリックするとDebianのインストールが始まります。
Debianのインストール開始画面が表示されたら、Ctrl+Gキーを押しVMware入力を可能にしてからEnterキーを押します。

インストール進行中には次のような項目を聞いてくるので設定してください。
(↓で移動 Tabで項目間の移動 スペースで選択<->解除 *****は任意)

locale(言語):日本語 続ける enter
キーボード:106 続ける enter
ホスト:***** 続ける enter
ドメイン:***** 続ける enter
パーティショニングの方法:ガイド—ディスク全体を使う enter
パーティショニングするディスクの選択:(このまま)enter
パーティショニング機構:すべてのファイルを1つのパーティションに(初心者には推奨)enter
ガイドによるパーティショニング:パーティショニングの終了とディスクへの変更の書き込み enter
ディスクに変更を書き込みますか:はい enter

rootのパスワード:***** 続ける enter
確認:***** 続ける enter
新しいユーザの本名:***** 続ける enter
あなたのアカウントのユーザ名:***** 続ける enter
新しいユーザのパスワードを選んでください:***** 続ける enter
確認のため、:***** 続ける enter
Debianアーカイブミラーの国:日本 enter
Debianアーカイブミラー:ftp.jp.debian.org entar
HTTPプロ棋士の情報(なければ空):(空で) 続ける enter
Debianパッケージ利用調査に参加しますか? はい or いいえ enter
インストールするソフトウェアの選択:デスクトップ環境、標準システム 続ける enter(残りはあとで)

ファイルを取得 20min と出ますが、インストール終了まで実際は2時間かかりました。

マスターブートレコードにGRUBブートローダをインストールしますか? はい enter

インストール完了 続ける enter

Debianが起動します。
(続く・・・)

2008年6月6日金曜日

Debianのインストール 1準備

今回は、VMware Playerを使ってWindows XPにDebianをインストールしました。
10GBのパーティションを作成して、そこで作業をしました。
VMwareが起動するとファイルが自動的に作られるので断片化が発生するようです。

参考にしたのは次のサイトです。
(情報ありがとうございます。後でお礼言わなくては。)
VMware + Debian
http://nagtos.oh.land.to/index.php?NAGTOSETTING%2FVMware%20%2B%20Debian

使ったのは次のものです。

VMware Player 2.0.4
http://www.vmware.com/jp/download/player/

QEMU on Windows
http://www.h7.dion.ne.jp/~qemu-win/index-ja.html
更新が停止しているので最新版はこちら
TAKEDA, toshiya's HOME PAGE
http://www1.interq.or.jp/t-takeda/top.html


VMwareが準備できたら、Debianのインストールです。
今回はネットインストールをしてみます。
Debian JP Projectのサイトのインストールの解説を読んでからインストールを始めます。
次のページを一通り読んで、

DEBIAN JP Project
http://www.debian.or.jp/

Debian GNU/Linux クイックインストール解説 (Etch 編)
http://www.debian.or.jp/using/quick-etch/index.html

最小の CD を使って、ネットワークインストールする
http://www.jp.debian.org/CD/netinst/

『「安定版 (stable)」リリースの公式なネットワークインストール CD のイ
メージ』- i386
Index of /debian-cd/4.0_r3/i386/iso-cd
http://cdimage.debian.org/debian-cd/4.0_r3/i386/iso-cd/

debian-40r3-i386-netinst.isoをダウンロードしました。


これで準備完了!

2008年6月5日木曜日

始めたきっかけ

MicrosoftのExcelにマップという機能があります。都道府県別のデータを入力したテーブルを作成すると、自動的に地図を色分けしてくれます。ある日、市区町村別に入力したデータを色分けしたという問い合わせがありました。
市区町村の行政界を表示できるkenmapや地図上にデータを表示できるMandaraなどいくつかソフトが見つかりました。自分でも興味があり情報を収集していくうちに国土交通相国土計画課の国土数値地図データを利用するためMapServerを試してみようと思いました。