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: मूल ogc: Div ogc: Add और ogc: गुणों पर सरल गणित करने के लिए उप।

तो आपका उदाहरण बन जाएगा:

<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 में फ़ंक्शन का उपयोग करने की अनुमति नहीं दे सकता है। हालाँकि जियोसेवर अधिक क्षमाशील है और इसकी अनुमति देगा।

यदि आपको कभी भी अधिक जटिल कार्यों की आवश्यकता होती है तो संदर्भ पृष्ठ देखें ।


एक आकर्षण की तरह काम करता है
ब्रूनो शापर

मैंने पाया कि <ogc:Mult>मेरे लिए काम नहीं किया, लेकिन <ogc:Mul>किया।
साइमन ओ'कीफ

1

जहां तक ​​मुझे पता है जियो सेवर एसएलडी में एम्बेडेड कोई भी गणित नहीं कर सकता है।
हालाँकि आप SLD में एक नियम बना सकते हैं <ogc:PropertyName>text_size</ogc:PropertyName>जो फ़िल्टर के साथ पढ़ सकता है , और अपने खुद के टेक्स्ट साइज़ को परिभाषित कर सकता है। GeoServer SLD कुकबुक कुछ है उदाहरण का उपयोग करने का
<ogc:Filter>


ऐसा लगता है कि अब काम कर रहा है। कृपया संस्करण 2.12.1 और ऊपर की जाँच करें।
ragnvald
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.