2014年2月20日木曜日

36 - GeoEXT を使用した WFS-T 2 - レイヤのスタイルの修正

36-2 GeoServer のレイヤの スタイルの修正
GeoServer のレイヤのスタイルを修正して名称などを表示します。

tokyo_kuiki と akiruno_kukaku レイヤのスタイルの SLD(Styled Layer Descriptor)ファイルを作成します。

kuiki.sld
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
 <NamedLayer>
 <Name>kuiki green</Name>
  <UserStyle>
   <Name>kuiki green</Name>
   <Title>Kuiki green polygon</Title>
   <Abstract>Light green fill with grey outline</Abstract>
   <FeatureTypeStyle>
    <Rule>
     <PolygonSymbolizer>
       <!-- 面の色 -->
      <Fill>
       <CssParameter name="fill">#CCFFCC</CssParameter>
       <CssParameter name="fill-opacity">0.5</CssParameter>
      </Fill>
       <!-- 縁の色 -->
      <Stroke>
       <CssParameter name="strok">#999999</CssParameter>
       <CssParameter name="stroke-width">1</CssParameter>
      </Stroke>
     </PolygonSymbolizer>
     <TextSymbolizer>
    <!-- 名称 -->
      <Label>
       <!-- tokyo_kuiki レイヤの名称の属性 -->
       <ogc:PropertyName>n03_004</ogc:PropertyName>
      </Label>
       <!-- フォント -->
      <Font>
       <CssParameter name="font-size">12</CssParameter>
       <CssParameter name="font-color">#CCCCCC</CssParameter>
      </Font>
     </TextSymbolizer>
    </Rule>
   </FeatureTypeStyle>
  </UserStyle>
 </NamedLayer>
</StyledLayerDescriptor>


kukaku.sld
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
 <NamedLayer>
 <Name>kukaku yellow</Name>
  <UserStyle>
   <Name>kukaku yellow</Name>
   <Title>Kukaku yellow polygon</Title>
   <Abstract>Light yellow fill with grey outline</Abstract>
   <FeatureTypeStyle>
    <Rule>
     <PolygonSymbolizer>
      <Fill>
       <CssParameter name="fill">#FFFFCC</CssParameter>
       <CssParameter name="fill-opacity">1</CssParameter>
      </Fill>
      <Stroke>
       <CssParameter name="strok">#CCCCCC</CssParameter>
       <CssParameter name="stroke-width">1</CssParameter>
      </Stroke>
     </PolygonSymbolizer>
     <TextSymbolizer>
      <Label>
       <ogc:PropertyName>name</ogc:PropertyName>
      </Label>
      <Font>
       <CssParameter name="font-size">12</CssParameter>
       <CssParameter name="font-color">#CCCCCC</CssParameter>
      </Font>
     </TextSymbolizer>
    </Rule>
   </FeatureTypeStyle>
  </UserStyle>
 </NamedLayer>
</StyledLayerDescriptor>


akiruno_kenchiku レイヤは倍率が高くなったとき表示します。

kenchiku.sld

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
 <NamedLayer>
 <Name>kenchiku green</Name>
  <UserStyle>
   <Name>kenchiku green</Name>
   <Title>Kenchiku green polygon</Title>
   <Abstract>Green fill</Abstract>
   <FeatureTypeStyle>
    <Rule>
      <!-- 表示倍率 -->
     <MinScaleDenominator>500</MinScaleDenominator>
     <MaxScaleDenominator>10000</MaxScaleDenominator>
     <PolygonSymbolizer>
      <Fill>
       <CssParameter name="fill">#99CC99</CssParameter>
       <CssParameter name="fill-opacity">1</CssParameter>
      </Fill>
      <Stroke>
       <CssParameter name="stroke">#336633</CssParameter>
       <CssParameter name="stroke-width">1</CssParameter>
      </Stroke>
     </PolygonSymbolizer>
    </Rule>
   </FeatureTypeStyle>
  </UserStyle>
 </NamedLayer>
</StyledLayerDescriptor>


tokyo_pf レイヤは以前、作成した SLD ファイルを修正します。
倍率が高くなったとき表示して、名称を表示します。

tokyo_pf.sld
---
 <NamedLayer>
  <Name>Simple point</Name>
  <UserStyle>
   <Title>Tokyo Public Facility tokyo_pf: Simple point</Title>

   <FeatureTypeStyle>
    <Rule>
     <Name>Building: lightgreen</Name>
     <ogc:Filter>
      <ogc:PropertyIsEqualTo>
       <ogc:PropertyName>p02_002</ogc:PropertyName>
       <ogc:Literal>3</ogc:Literal>
      </ogc:PropertyIsEqualTo>
     </ogc:Filter>
      <!-- 表示倍率 追加 -->
     <MinScaleDenominator>500</MinScaleDenominator>
     <MaxScaleDenominator>10000</MaxScaleDenominator>
     <PointSymbolizer>
      <Graphic>
       <Mark>
        <WellKnownName>circle</WellKnownName>
        <Fill>
         <CssParameter name="fill">#99ff99</CssParameter>
        </Fill>
        <Stroke>
         <CssParameter name="stroke">#33ff33</CssParameter>
         <CssParameter name="stroke-width">2</CssParameter>
        </Stroke>
       </Mark>
       <Size>10</Size>
      </Graphic>
     </PointSymbolizer>
      <!-- 名称(ラベル) 追加 -->
     <TextSymbolizer>
      <Label>
       <ogc:PropertyName>p02_004</ogc:PropertyName>
      </Label>
      <Font>
       <CssParameter name="font-size">12</CssParameter>
       <CssParameter name="font-color">#CCCCCC</CssParameter>
      </Font>
       <!-- ポイントに対するラベルの位置 -->
      <LabelPlacement>
       <PointPlacement>
         <!-- ポイントとラベルの関わり -->
        <AnchorPoint>
          <!-- 水平方向(ラベルの中央) -->
         <AnchorPointX>0.5</AnchorPointX>
          <!-- 垂直方向(ラベルの底辺) -->
         <AnchorPointY>0.0</AnchorPointY>
        </AnchorPoint>
         <!-- ラベルのオフセット -->
        <Displacement>
          <!-- 水平方向 -->
         <DisplacementX>0</DisplacementX>
          <!-- 垂直方向(5ピクセル上) -->
         <DisplacementY>5</DisplacementY>
        </Displacement>
       </PointPlacement>
      </LabelPlacement>
     </TextSymbolizer>
    </Rule>
   </FeatureTypeStyle>
---

各 <FeatureTypeStyle> に同じ設定をします。

0 件のコメント: