2013年11月27日水曜日

25 - あきる野市の地図にスタイルを設定 1 - 公共施設の色分け(MapServer WMS)

25-1 マップファイルを設定して公共施設の色分けする(WMS)
公共施設のデータを使って、Point表示の色や大きさ変更します。
クライアント側(OpenLayers など)で設定する方法は難しいので、サーバ側(MapServer や GeoServer)で設定します。

国土数値情報の公共施設の説明から、大分類コードしたがってデータをレイヤ別に表示します。

公共施設大分類コード 〈ファイル名称:PubFacMaclassCd〉
コード  対応する内容
3       建物
9       その他
11      国の機関
12      地方公共団体
13      厚生機関
14      警察機関
15      消防署
16      学校
17      病院
18      郵便局
19      福祉施設


CLASS NAME       COLOR        OUTLINECOLOR
building         153 255 153   51 255  51
national_office  153 153 255   51  51 255
local_office     255 153 153  255  51  51
welfare          255 255 153  255 255  51
police           153 255 255   51 255 255
fire_station     255 153 255  255  51 255
school            51 255  51   00 255  00
hospital         255 153  51  255 102  00
post             255  00  00  255  00  00
benefits         255 255  00  255 153  51
other            153 153 153  153 153 153


シェイプファイルの情報を見てみます。

user@debian7-vmw:~/ダウンロード/nlni/public_facilities$ $ ogrinf-summary tokyo_pf P02-06_13-g_PublicFacility
INFO: Open of `tokyo_pf'
      using driver `ESRI Shapefile' successful.

Layer name: P02-06_13-g_PublicFacility
Geometry: Point
Feature Count: 14414
Extent: (139.015694, 26.640098) - (142.203778, 35.841866)
Layer SRS WKT:
(unknown)
P02_001: String (5.0)
P02_002: String (2.0)
P02_003: String (5.0)
P02_004: String (84.0)
P02_005: String (70.0)
P02_006: String (1.0)
P02_007: String (12.0)

情報の詳細を表示してみます。(ctrl + c キーで途中で止めます。)

user@debian7-vmw:~/ダウンロード/nlni/public_facilities$ ogrinfo tokyo_pf P02-06_13-g_PublicFacility
INFO: Open of `tokyo_pf'
      using driver `ESRI Shapefile' successful.

Layer name: P02-06_13-g_PublicFacility
Geometry: Point
Feature Count: 14414
Extent: (139.015694, 26.640098) - (142.203778, 35.841866)
Layer SRS WKT:
(unknown)
P02_001: String (5.0)
P02_002: String (2.0)
P02_003: String (5.0)
P02_004: String (84.0)
P02_005: String (70.0)
P02_006: String (1.0)
P02_007: String (12.0)
OGRFeature(P02-06_13-g_PublicFacility):0
  P02_001 (String) = 13101
  P02_002 (String) = 3
  P02_003 (String) = 03001
  P02_004 (String) = ニューオータニ美術館
  P02_005 (String) = 紀尾井町4-1
  P02_006 (String) = 4
  P02_007 (String) = 数値地図画像
  POINT (139.734103 35.681014)

OGRFeature(P02-06_13-g_PublicFacility):1
  P02_001 (String) = 13101
  P02_002 (String) = 3
  P02_003 (String) = 03001
  P02_004 (String) = 宮内庁三の丸尚蔵館
  P02_005 (String) = 千代田1-1
  P02_006 (String) = 1
  P02_007 (String) = 数値地図画像
  POINT (139.754098 35.683808)
---

大分類は「P02_002」です。

nippon_nlni_tokyo_pgis.map の公共施設 tokyo_pf レイヤを変更します。

---
 LAYER
  NAME tokyo_pf
  GROUP tokyo_pf
  TYPE POINT
  STATUS ON
  CONNECTIONTYPE POSTGIS
  CONNECTION "dbname=nippon_nlni host=localhost user=user password=password"
  DATA "the_geom from tokyo_pf"
#  MINSCALEDENOM 500   # <-1
#  MAXSCALEDENOM 10000
#  LABELITEM "p02_004" # <-2
  CLASSITEM "p02_002" # <-3
#  PROJECTION
#   "init=epsg:2451"
#   "init=epsg:4326"
#  END
  METADATA
   "wms_title" "Tokyo Public Facilities Map WMS Layer"
   "wms_srs" "EPSG:2451 EPSG:4326"
   "wfs_title" "Tokyo Public Facilities Map WFS Layer"
   "wfs_srs" "EPSG:4326"
   "gml_featureid" "gid"
   "gml_include_items" "all"
  END
  CLASS
#   NAME "公共施設"
#   STYLE
#    COLOR 0 255 0
#    SYMBOL 'circle'
#    SIZE 5
#   END
  END
  CLASS
   NAME "building"
   EXPRESSION ([p02_002] = 3) # <-4
   STYLE
    COLOR 153 255 153 # <-5
    OUTLINECOLOR 51 255 51 # <-5
    SYMBOL 'circle'
    SIZE 5
   END
  END
  CLASS
   NAME "national_office"
   EXPRESSION ([p02_002] = 11)
   STYLE
    COLOR 153 153 255
    OUTLINECOLOR 51 51 255
    SYMBOL 'circle'
    SIZE 5
   END
  END
  CLASS
   NAME "local_office"
   EXPRESSION ([p02_002] = 12)
   STYLE
    COLOR 255 153 153
    OUTLINECOLOR 255 51 51
    SYMBOL 'circle'
    SIZE 5
   END
  END
  CLASS
   NAME "welfare"
   EXPRESSION ([p02_002] = 13)
   STYLE
    COLOR 255 255 153
    OUTLINECOLOR 255 255 51
    SYMBOL 'circle'
    SIZE 5
   END
  END
  CLASS
   NAME "police"
   EXPRESSION ([p02_002] = 14)
   STYLE
    COLOR 153 255 255
    OUTLINECOLOR 51 255 255
    SYMBOL 'circle'
    SIZE 5
   END
  END
  CLASS
   NAME "fire_station"
   EXPRESSION ([p02_002] = 15)
   STYLE
    COLOR 255 153 255
    OUTLINECOLOR 255 51 255
    SYMBOL 'circle'
    SIZE 5
   END
  END
  CLASS
   NAME "school"
   EXPRESSION ([p02_002] = 16)
   STYLE
    COLOR 51 255 51
    OUTLINECOLOR 0 255 0
    SYMBOL 'circle'
    SIZE 5
   END
  END
  CLASS
   NAME "hospital"
   EXPRESSION ([p02_002] = 17)
   STYLE
    COLOR 255 153 51
    OUTLINECOLOR 255 102 0
    SYMBOL 'circle'
    SIZE 5
   END
  END
  CLASS
   NAME "post"
   EXPRESSION ([p02_002] = 18)
   STYLE
    COLOR 255 0 0
    OUTLINECOLOR 255 0 0
    SYMBOL 'circle'
    SIZE 5
   END
  END
  CLASS
   NAME "benefits"
   EXPRESSION ([p02_002] = 19)
   STYLE
    COLOR 255 255 0
    OUTLINECOLOR 255 153 51
    SYMBOL 'circle'
    SIZE 5
   END
  END
  CLASS
   NAME "other"
   EXPRESSION ([p02_002] = 9)
   STYLE
    COLOR 153 153 153
    OUTLINECOLOR 153 153 153
    SYMBOL 'circle'
    SIZE 5
   END
#   LABEL
#    MINFEATURESIZE 40
#    TYPE TRUETYPE
#    FONT vl-gothic
#    ENCODING UTF8
#    SIZE 8
#    POSITION uc
#   END
  END
 END
---

1 指定していると OpenLayers で表示できないときがあります。
#  MINSCALEDENOM 500
#  MAXSCALEDENOM 10000
2 LABEL を表示しないのでコメントアウト
3 CLASSを使うときのフィールドの属性値の指定
4 描画する条件値(式)
5 塗りつぶしと外周の色 RGB 0-255

Eclipse を起動して ol003-nippon_bmi_akiruno_pgis.html を開きます。
実行ボタン
をクリックして地図を表示します。

0 件のコメント: