2008年7月2日水曜日

グラフィカルなデータ表示 3円積図

人口を円積図で表します。人口によって円の大きさを変えて表示します。

マップファイルに描画する図の設定(SYMBOL)と新しいレイヤを追加します。
SYMBOLはレイヤの前に、新しいレイヤはcloudsレイヤとcountriesレイヤの間に追加します。
LABELを表示しないとSTYLEで設定したcircleが表示されませんでした。
---
SYMBOL
 NAME 'circle'
 TYPE ELLIPSE
 FILLED TRUE
 POINTS
  1 1
 END
END
---
LAYER
 NAME clouds
 TYPE RASTER
 STATUS ON
 DATA "data/day_clouds.tif"
END

LAYER
 NAME totalpop
 GROUP totalpop
 TYPE ANNOTATION #基準点が計算され、地物は表示されません。ラベルのみ表示したいときに使われます。
 STATUS ON #初期状態 ON:表示 OFF:非表示
 DATA "data/freegis_worlddata-0.1_simpl/countries_simpl.shp"
 LABELITEM "total" #LABELを使うときのフィールドの属性値の指定
 CLASSITEM "total" #CLASSを使うときのフィールドの属性値の指定
 CLASS
  NAME "over 100milion" #凡例のタイトルになります
  EXPRESSION ([total] >= 100000000) #描画する条件値(式)
  LABEL #LABELを表示しないとSTYLEで設定したcircleが表示されませんでした。
   SIZE tiny #文字の大きさ
   MINFEATURESIZE 300
   COLOR 255 204 204
   OUTLINECOLOR 102 51 51
   POSITION ul #文字の位置:upper-left 中心の上左
  END
  STYLE #表示されるものの外観を定義
   SYMBOL 'circle' #定義した'circle'を使用
   COLOR 255 0 0 #'circle'の塗りつぶしの色
   SIZE 20 #'circle'の大きさ
  END
 END
 CLASS
  NAME "10 to 100milion"
  EXPRESSION ([total] < 100000000 AND [total] >= 10000000)
  LABEL
   SIZE tiny
   MINFEATURESIZE 300
   COLOR 255 204 204
   OUTLINECOLOR 102 51 51
   POSITION ul
  END
  STYLE
   SYMBOL 'circle'
   COLOR 255 0 0
   SIZE 10
  END
 END
 CLASS
  NAME "1 to 10milion"
  EXPRESSION ([total] < 1000000 AND [total] >= 1000000)
  LABEL
   SIZE tiny
   MINFEATURESIZE 300
   COLOR 255 204 204
   OUTLINECOLOR 102 51 51
   POSITION ul
  END
  STYLE
   SYMBOL 'circle'
   COLOR 255 0 0
   SIZE 5
  END
 END
END

LAYER
NAME countries
---




ただいま、Debianで mapserver5.0.2 と libgdal1_1.5.0 で セグメンテーション違反で地図が表示されません。MapServerホームページに対処があるようですが、探している最中です。もしくは、libgcc1-4.3 を libgcc1-4.2 にすると大丈夫なようですが、 libgcc1-4.2 が見つかりません。

0 件のコメント: