今回、mapserverのマップファイルで、sql発行や日本語出力、マーカー表示をする機会があったので、srcを記載しておきます。
MAP SIZE 1000 1000 #画像size EXTENT 140.2 38.3 141.8 38.6 #出力範囲の座標 STATUS ON #地図を表示するか UNITS DD #地図の単位(DD は緯度経度) IMAGECOLOR 255 255 255 #背景色R G B IMAGETYPE PNG #地図画像を保存する形式 FONTSET /Users/endo/local/mapserver-5.6.3/fonts/fonts.list SYMBOL NAME "circle" TYPE ellipse FILLED true POINTS 1 1 END END #SYMBOL定義 LAYER NAME "gyosei" CONNECTIONTYPE POSTGIS CONNECTION "user=postgres password='' dbname=hazard host=localhost" #DATA〜の行は実際には1行です DATA "the_geom FROM (select g.*, c.city||'\n'||c.builded as adrs,builded from gyosei g left join city_summary c on (g.prn=c.prn and (c.city like '%'||g.con||'%' or c.city like '%'||g.cn2||'%')) where g.prn='宮城県') AS new_table using unique gid" TYPE POLYGON STATUS ON LABELITEM 'adrs' CLASS EXPRESSION ( 0<=[builded] && [builded]< 100) OUTLINECOLOR 0 0 0 COLOR 240 248 255 LABEL TYPE TRUETYPE FONT ipa_gothic COLOR 0 0 0 OUTLINECOLOR 255 255 255 SIZE 11 END END CLASS EXPRESSION (100<=[builded]) OUTLINECOLOR 0 0 0 COLOR 0 0 139 LABEL TYPE TRUETYPE FONT ipa_gothic COLOR 0 0 0 OUTLINECOLOR 255 255 255 SIZE 11 END END CLASS OUTLINECOLOR 0 0 0 COLOR 255 255 255 LABEL TYPE TRUETYPE FONT ipa_gothic COLOR 0 0 0 OUTLINECOLOR 255 255 255 SIZE 11 END END END LAYER NAME "tei" CONNECTIONTYPE POSTGIS CONNECTION "user=postgres password='' dbname=hazard host=localhost" DATA "point FROM tei_coord" TYPE POINT STATUS ON CLASS SYMBOL "circle" SIZE 10 COLOR 200 0 0 END END END END
日本語の出力には、FONTSET の定義が必要
マップファイルの8行目に次のような記述があります。
FONTSET /Users/endo/local/mapserver-5.6.3/fonts/fonts.list
mapfileで日本語を出力するにはフォントファイルと、このFONTSET定義が必要ですが、私の場合、ipaから日本語フォントをダウンロードし、次のようにfonts.listに定義しました。
ipa_gothic /Users/endo/local/font/ipag.ttf
DATA行でjoinしたsqlを発行する場合、GIDの指定が必要
今回、DATA行では、joinを用いたsqlを発行していますが、
このようなsqlを用いる場合、「using unique gid」のようにGIDの指定が必要になるようです。
※前述のmapfileにあるsqlは、実際には1行で記述して下さい。
POINTなオブジェクトを円で表示する場合、SYMBOL定義が必要
SYMBOL NAME "circle" TYPE ellipse FILLED true POINTS 1 1 END END
ここで定義している「circle」は、「LAYER NAME "tei"」で使用しています。