개발공작소
article thumbnail
728x90
반응형

 

Geoserver Function의 numberFormat 속성을 이용하면 WMS스타일에서 숫자마다 콤마(,)를 줄 수 있다.

numberFormat 속성으로 콤마(,) 말고도 다양한 문자열을 줄 수 있으니 필요한 사람은 문서를 보고 찾아보자.

설명할 건 따로 없고 그냥 아래 샘플코드만 보도록 하자.

 

 

기본 설명코드

<html />
<ogc:Function name="numberFormat"> <!-- 몇 자릿수 마다 콤마(,)를 줄 지 설정. 여기서는 3자리마다.. --> <ogc:Literal>###,###,###</ogc:Literal> <!-- 연동된 테이블의 컬럼명 --> <ogc:PropertyName>column1</ogc:PropertyName> <!-- 콤마(콤마 말고도 다른 옵션들도 있으니 찾아보시길.. es가 . 였던 걸로 기억) --> <ogc:Literal>en</ogc:Literal> </ogc:Function>

 

전체 샘플코드

<html />
<?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
반응형
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!