2015年5月26日火曜日

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

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

マップファイルに描画する図の設定(SYMBOL)と population レイヤを追加します。
SYMBOL はレイヤの前に追加します。
LABEL を表示しないと STYLE で設定した circle が表示されませんでした。
---
 SYMBOL
  NAME 'circle'
  TYPE ELLIPSE
  FILLED TRUE
  POINTS
   1 1
  END
 END
---
ellipse: radius values in the x and y directions define an ellipse.
xとy方向の半径の値は、楕円を定義します。
(http://mapserver.org/el/mapfile/symbol.html)

FILLED [true|false]: If true, the symbol will be filled with a user defined color (using STYLE COLOR). Default is false.
true の場合、シンボルはユーザ定義された色(STYLE COLOR を使用して)で満たされます。デフォルトは false です。
(http://mapserver.org/el/mapfile/symbol.html)

POINTS [x y] [x y] ... END: Signifies the start of a sequence of points that make up a symbol of TYPE vector or that define the x and y radius of a symbol of TYPE ellipse. The end of this section is signified with the keyword END. The x and y values can be given using decimal numbers. The maximum x and y values define the bounding box of the symbol. The size (actually height) of a symbol is defined in the STYLE. You can create non-contiguous paths by inserting “-99 -99” at the appropriate places.
x values increase to the right, y values increase downwards.
TYPE vector のシンボルを構成する、または、TYPE ellipse(楕円)のシンボルのxとyの半径を定義する点のシーケンスの開始を意味します。このセクションの最後は、キーワード END で意味されます。 xとyの値は10進数を使用して与えます。xとyの最大値は、シンボルの境界ボックスを定義します。シンボルのサイズ(実際には高さ)STYLE 内で定義されます。適切な場所に 「-99 -99」を挿入して、非連続的なパスを作成することができます。
x値は右方向に増加し、yの値は下方へ増加します。
(http://mapserver.org/el/mapfile/symbol.html)
---
 LAYER
  NAME global-raster
  TYPE RASTER
  STATUS DEFAULT
  DATA "land_ocean_ice_2048.jpg"
 END
 LAYER
  NAME population
  TYPE POLYGON
  STATUS ON
  DATA "110m_cultural/ne_110m_admin_0_countries.shp"
  OPACITY 50 #透過度 0完全透明 100不透明
  LABELITEM "pop_est" #LABELを使うときのフィールドの属性値の指定
  CLASSITEM "pop_est" #CLASSを使うときのフィールドの属性値の指定
  CLASS
   NAME "over 1billion" #凡例のタイトルになります
   EXPRESSION ([pop_est] >= 1000000000) #描画する条件値(式)
   LABEL
    SIZE tiny #文字の大きさ
#   MINFEATURESIZE 300 #フィーチャがラベルを表示する最小サイズ
    COLOR 255 102 102
    OUTLINECOLOR 102 51 51
    POSITION ul #文字の位置:upper-left 中心の上左
    STYLE #表示されるものの外観を定義
     SYMBOL 'circle' #定義した'circle'を使用
     COLOR 255 0 0 #'circle'の塗りつぶしの色
     SIZE 20 #'circle'の大きさ
    END
   END
   STYLE
    OUTLINECOLOR 153 0 0
   END
  END
  CLASS
   NAME "100million to 1billion"
   EXPRESSION ([pop_est] <= 1000000000 AND [pop_est] >= 100000000)
   LABEL
    SIZE tiny
    MINFEATURESIZE 100
    COLOR 255 102 102
    OUTLINECOLOR 102 51 51
    POSITION ul
    STYLE
     SYMBOL 'circle'
     COLOR 255 0 0
     SIZE 10
    END
   END
   STYLE
    OUTLINECOLOR 153 0 0
   END
  END
  CLASS
   NAME "10 to 100million"
   EXPRESSION ([pop_est] <= 100000000 AND [pop_est] >= 10000000)
   LABEL
    SIZE tiny
    MINFEATURESIZE 100
    COLOR 255 102 102
    OUTLINECOLOR 102 51 51
    POSITION ul
    STYLE
     SYMBOL 'circle'
     COLOR 255 0 0
     SIZE 5
    END
   END
   STYLE
    OUTLINECOLOR 153 0 0
   END
  END
  CLASS
   NAME "under 10million"
   EXPRESSION ([pop_est] <= 10000000)
   LABEL
    SIZE tiny
    MINFEATURESIZE 200
    COLOR 255 102 102
    OUTLINECOLOR 102 51 51
    POSITION ul
    STYLE
     SYMBOL 'circle'
     COLOR 255 0 0
     SIZE 5
    END
   END
   STYLE
    OUTLINECOLOR 153 0 0
   END
  END
 END
# LAYER
#  NAME country-boundary
#  TYPE POLYGON #面表示になります
#  STATUS ON #初期状態 ON:表示 OFF:非表示
#  DATA "110m_cultural/ne_110m_admin_0_countries.shp"
#  CLASS
#   NAME 'Country Boundary'
#   STYLE
#    OUTLINECOLOR 153 0 0
#   END
#  END
# END

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

http://localhost/cgi-bin/mapserv?mode=browse&template=openlayers&layer=global-laster&layer=population&map=/home/user/mapfile/global.map


TYPE annotation has been deprecated since version 6.2. Identical functionality can be obtained by adding LABEL level STYLE blocks, and do not require loading the datasets twice in two different layers as was the case with layers of TYPE annotation.
TYPE annotation は、バージョン 6.2 以降推奨されていません。同じ機能は、LABEL レベル STYLE ブロックを追加することによって得ることができ、TYPE annotation のレイヤを有する場合のように、2つの異なるレイヤに2回データセットをロードする必要がありません。
(http://mapserver.org/el/mapfile/layer.html)

0 件のコメント: