データの用意までできたので、いよいよ地図の出力です。地図の出力はとても簡単で、リスト1に掲載するPHPファイルをlist1.phpとして保存し、同階層にリスト2に示す地図画像の設定用のファイル(Mapファイル)をlist2.mapという名前で保存します。
リスト1
1 <?php
2
3 // 東京都の緯度経度情報
4 $min_lon = 138.9; $min_lat = 35.45;
5 $max_lon = 140.0; $max_lat = 35.95;
6
7
8 // 設定ファイルからオブジェクトを作成する
9 $map = ms_newMapObj("./list2.map");
10 // 出力する画像サイズの設定
11 $map->setSize(800, 400);
12 // 地図画像に含まれる緯度経度の指定
13 $map->setExtent($min_lon, $min_lat, $max_lon, $max_lat);
14
15 // 保存する画像のパス
16 $image_file = dirname(__FILE__). “/mapimg/figure1.png”;
17 // 画像オブジェクトの作成
18 $img = $map->draw();
19 // 画像オブジェクトからファイルへの保存
20 $img->saveImage($image_file);
21
22 header("Content-type: image/png");
23 readfile($image_file);
24 ?>
リスト2
1 MAP
2 STATUS ON # 地図を表示するかどうか。当然ON
3 UNITS DD # この地図の単位(DD は緯度経度)
4 IMAGECOLOR 0 0 0 # 背景色R G B
5 FONTSET “./fontfile” # フォント用ファイル
6 IMAGETYPE PNG # 地図画像を保存する形式
7
8 SCALEBAR # スケールバーオブジェクトの開始
9 STATUS embed # スケールバーを地図内に埋め込むという意味
10 POSITION LL # 左下に表示
11 STYLE 1 # 0 か1 で表示方法を指定する
12 UNITS KILOMETERS # スケールバーの単位
13 SIZE 200 10 # スケールバーの大きさ(ピクセル)
14 COLOR 255 255 255 # スケールバーの色
15 #BACKGROUNDCOLOR 0 255 0 # STYLE が 0 の時に使用される
16 IMAGECOLOR 0 0 0 # スケールバーの背景色
17 INTERVALS 4 # 線の間隔の数
18
19 LABEL # ラベルオブジェクトの開始
20 COLOR 255 255 255 # 文字の色
21 END
22 END # スケールバーのオブジェクトの終了
23
24
25 LAYER
26 NAME “main”
27 CONNECTIONTYPE POSTGIS
28 CONNECTION “user=postgres password=pass dbname=phppro_sample host=localhost”
29 DATA “the_geom FROM gyosei”
30 TYPE POLYGON
31 STATUS ON
32 CLASS
33 COLOR 255 255 255
34 OUTLINECOLOR 0 0 255
35 SYMBOL 0
36 END
37 END
38 END
また、文字を出力するためのフォントの設定ファイルをfontfileという名前で作成し、以下の1行を記述します。なお、フォントのファイルパスが異なる場合は、正しく指定してください。
gothic /usr/share/fonts/ja/TrueType/kochi-gothic-subst.ttf
作成した画像ファイルを保存するディレクトリmapimgを作成して、Webサーバの実行ユーザから書き込みできるように設定します。
以上で終了です。あとは、ブラウザからスクリプトを実行すれば、図1のような地図が出力されるでしょう。

図1 (画像をクリックすると別ウィンドウに拡大図を表示します)
|