728x90
반응형
Geoserver Function의 numberFormat 속성을 이용하면 WMS스타일에서 숫자마다 콤마(,)를 줄 수 있다.
numberFormat 속성으로 콤마(,) 말고도 다양한 문자열을 줄 수 있으니 필요한 사람은 문서를 보고 찾아보자.
설명할 건 따로 없고 그냥 아래 샘플코드만 보도록 하자.
기본 설명코드
<ogc:Function name="numberFormat">
<!-- 몇 자릿수 마다 콤마(,)를 줄 지 설정. 여기서는 3자리마다.. -->
<ogc:Literal>###,###,###</ogc:Literal>
<!-- 연동된 테이블의 컬럼명 -->
<ogc:PropertyName>column1</ogc:PropertyName>
<!-- 콤마(콤마 말고도 다른 옵션들도 있으니 찾아보시길.. es가 . 였던 걸로 기억) -->
<ogc:Literal>en</ogc:Literal>
</ogc:Function>
전체 샘플코드
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:se="http://www.opengis.net/se" xmlns:xlink="http://www.w3.org/1999/xlink">
<NamedLayer>
<se:Name>sample_layer</se:Name>
<UserStyle>
<se:Name>sample_layer</se:Name>
<se:FeatureTypeStyle>
<se:Rule>
<se:Name>Single sample_layer</se:Name>
<se:MinScaleDenominator>0</se:MinScaleDenominator>
<se:MaxScaleDenominator>750000</se:MaxScaleDenominator>
<se:PolygonSymbolizer>
<se:Fill>
<se:SvgParameter name="fill">#e10fbe</se:SvgParameter>
</se:Fill>
<se:Stroke>
<se:SvgParameter name="stroke">#010101</se:SvgParameter>
<se:SvgParameter name="stroke-width">1</se:SvgParameter>
<se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter>
</se:Stroke>
</se:PolygonSymbolizer>
</se:Rule>
<se:Rule>
<se:MinScaleDenominator>0</se:MinScaleDenominator>
<se:MaxScaleDenominator>750000</se:MaxScaleDenominator>
<se:TextSymbolizer>
<se:Label>
<ogc:Function name="numberFormat">
<ogc:Literal>###,###,###</ogc:Literal>
<!--
데이터가 없어서 일반 문자열을 넣었음. 컬럼을 가져다 쓸 사람은
<ogc:PropertyName>컬럼명</ogc:PropertyName>을 넣도록 하자.
-->
<ogc:Literal>3560000</ogc:Literal>
<ogc:Literal>en</ogc:Literal>
</ogc:Function>
</se:Label>
<se:Font>
<se:SvgParameter name="font-family">Gulim</se:SvgParameter>
<se:SvgParameter name="font-size">13</se:SvgParameter>
</se:Font>
<se:LabelPlacement>
<se:PointPlacement>
<se:AnchorPoint>
<se:AnchorPointX>0</se:AnchorPointX>
<se:AnchorPointY>0.5</se:AnchorPointY>
</se:AnchorPoint>
</se:PointPlacement>
</se:LabelPlacement>
<se:Fill>
<se:SvgParameter name="fill">#000000</se:SvgParameter>
</se:Fill>
<se:VendorOption name="maxDisplacement">1</se:VendorOption>
<se:VendorOption name="conflictResolution">false</se:VendorOption>
</se:TextSymbolizer>
</se:Rule>
</se:FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
위처럼 스타일을 만들어 적용하면 아래와 같은 결과물을 볼 수 있다.
숫자 3자리마다 콤마(,)가 정상적으로 찍혔다.
728x90
반응형
'GIS' 카테고리의 다른 글
[GIS] QGIS에서 가상 Shape 레이어 생성하는 방법 + 직접 레이어를 그리는 방법 (0) | 2023.11.22 |
---|---|
[QGIS] QGIS에서 편집모드 활성화가 안되는 경우 확인해야 하는 사항 (1) | 2023.10.17 |
[Geoserver] WMS 스타일 : 라벨 문자열 합치는 방법 ( feat. Function ) (0) | 2023.08.25 |
[Geoserver] WMS 스타일에서 라벨 무조건 보이도록 하는 옵션 (0) | 2023.08.25 |
[Geoserver] 특정 저장소에 있는 레이어를 다른 저장소에 옮기는 방법 (0) | 2023.08.03 |