Geoserver의 SLD 파일에서 간단한 수학을 사용하십니까?


11

Geoserver의 SLD 파일에서 간단한 수학을 사용할 수 있습니까? 데이터베이스에서 텍스트 크기 속성을 읽고 값을 곱하려고한다고 가정하면 어떻게해야합니까?

<sld:TextSymbolizer>
    ...
    <sld:CssParameter name="font-size">
        <ogc:PropertyName>text_size</ogc:PropertyName> * 2.1
    </sld:CssParameter>
    ...
</sld:TextSymbolizer>

이 간단한 접근 방식은 분명히 작동하지 않으므로이를 달성 할 수있는 방법이 있어야한다고 생각했습니다.

답변:


12

ogc : Mul ogc : Div ogc : Add & ogc : Sub 수학 함수를 사용하여 속성에 대한 간단한 수학을 수행 할 수 있습니다.

따라서 귀하의 예는 다음과 같습니다.

<sld:CssParameter name="font-size">
    <ogc:Mul>
       <ogc:PropertyName>text_size</ogc:PropertyName>
       <ogc:Literal>2.5</ogc:Literal>
    </ogc:Mul>
</sld:CssParameter>

유일한 문제는 기술적으로 SLD 사양에 따라 CssParameter에서 함수를 사용할 수 없다는 것입니다. 그러나 GeoServer는 훨씬 더 관대하며 허용 할 것입니다.

보다 복잡한 기능이 필요한 경우 참조 페이지를 참조하십시오 .


매력처럼 작동
브루노 Schäpper

나는 그것이 <ogc:Mult>저에게 효과적이지 않다는 것을 알았 <ogc:Mul>습니다.
Simon O'Keefe 2016 년

1

내가 아는 한 GeoServer는 SLD에 포함 된 수학을 수행 할 수 없습니다.
그러나 SLD <ogc:PropertyName>text_size</ogc:PropertyName>에서 필터로 읽을 수있는 규칙을 작성하고 고유 한 텍스트 크기를 정의 할 수 있습니다. GeoServer SLD 요리 책은 몇 가지가 사용을
<ogc:Filter>


지금 작동하는 것 같습니다. 버전 2.12.1 이상을 확인하십시오.
ragnvald
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.