GeoServer에서 레이어의 스타일(SLD) 작성시 Filter function 중 Geometric function을 사용하면 다양한 효과를 낼 수 있다.
Geometric function을 사용하면 원본 레이어의 geometry 타입을 변경하지 않고 렌더링 타임에 폴리곤의 중심점(centroid), 버퍼(buffer), 시작점(startPoint), 끝점(endPoint), 정점(vertices) 등을 적용할 수 있으며, 이를 "SLD geometry transformations"이라 부른다.
SLD에 Geometric function을 사용하는 경우 성능 문제를 야기할 수 있으므로, 사용 목적에 따라 사용 여부를 신중히 결정해야 한다.
다음은 건물 등의 폴리곤에 Shadow(그림자) 및 Extrusion(2.5D) 효과를 줄 수 있는 방법을 알아본다.
▣ Default
- GeoServer 기본 폴리곤 스타일 사용
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#AAAAAA</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">0.5</CssParameter>
</Stroke>
</PolygonSymbolizer>
▣ Shadow
- offset function 사용
<PolygonSymbolizer>
<Geometry>
<ogc:Function name="offset">
<ogc:PropertyName>the_geom</ogc:PropertyName>
<ogc:Literal>0</ogc:Literal>
<ogc:Literal>-2</ogc:Literal>
</ogc:Function>
</Geometry>
<Fill>
<CssParameter name="fill">#555555</CssParameter>
</Fill>
</PolygonSymbolizer>
▣ Extrusion
- isometric & offset function을 조합하여 사용
- isometric 함수 인자로 숫자(<ogc:Literal>3</ogc:Literal> ,3) 외에 필드값(필드명 입력) 또는 필드값의 연산 사용 가능
<PolygonSymbolizer>
<Geometry>
<ogc:Function name="isometric">
<ogc:PropertyName>the_geom</ogc:PropertyName>
<ogc:Literal>3</ogc:Literal>
</ogc:Function>
</Geometry>
<Fill>
<CssParameter name="fill">#dddddd</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#999999</CssParameter>
<CssParameter name="stroke-width">0.1</CssParameter>
</Stroke>
</PolygonSymbolizer>
<PolygonSymbolizer>
<Geometry>
<ogc:Function name="offset">
<ogc:PropertyName>the_geom</ogc:PropertyName>
<ogc:Literal>0</ogc:Literal>
<ogc:Literal>3</ogc:Literal>
</ogc:Function>
</Geometry>
<Fill>
<CssParameter name="fill">#FFDCC7</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#999999</CssParameter>
<CssParameter name="stroke-width">0.3</CssParameter>
</Stroke>
</PolygonSymbolizer>
▣ 스타일 다운로드
- building_shadow.sld
- building_extrusion.sld
▣ 참고
- http://docs.geoserver.org/stable/en/user/styling/sld-extensions/geometry-transformations.html
- http://docs.geoserver.org/stable/en/user/filter/function_reference.html
댓글 없음:
댓글 쓰기