ใช้คณิตศาสตร์แบบง่ายในไฟล์ SLD บน Geoserver หรือไม่


11

เป็นไปได้หรือไม่ที่จะใช้ Math อย่างง่ายในไฟล์ SLD บน Geoserver สมมติว่าฉันต้องการอ่านคุณสมบัติขนาดตัวอักษรจากฐานข้อมูลและคูณค่าของมันฉันจะทำสิ่งนี้ได้อย่างไร

<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: เพิ่ม & 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 นั้นให้อภัยมากกว่าและจะยอมให้

หากคุณต้องการฟังก์ชั่นที่ซับซ้อนมากขึ้นดูหน้าอ้างอิง


ใช้งานได้อย่างมีเสน่ห์
Bruno Schäpper

ฉันพบ<ogc:Mult>ว่าไม่ได้ผลสำหรับฉัน แต่<ogc:Mul>ทำ
Simon O'Keefe

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.