6 votos

Uso de matemáticas en archivo SLD - wkt

Es posible el uso de las matemáticas en el archivo SLD en Geotools? Quiero recibir Orientación para las líneas y calcular su seno/coseno y, a continuación, se multiplica con algún valor. Pero cuando hago esto no se ve nada. Aquí está la parte polígono symbolizer que estoy usando.

<PolygonSymbolizer>
<Geometry>
    <ogc:Function name="buffer">
        <ogc:PropertyName>the_geom</ogc:PropertyName>
        <ogc:PropertyName>Buffer</ogc:PropertyName>
    </ogc:Function>
</Geometry>  
<Fill>
    <GraphicFill>
        <Graphic>
            <Mark>
                <WellKnownName>wkt://LINESTRING( 
                0 
                0,     
                    <ogc:Mul>
                        <ogc:PropertyName>Orientation</ogc:PropertyName>
                        <ogc:Literal>200</ogc:Literal>
                    </ogc:Mul> 
                    33 )</WellKnownName>
                <Stroke>
                    <CssParameter name="stroke">#000000</CssParameter>
                    <CssParameter name="stroke-width">1</CssParameter>
                </Stroke>
            </Mark>
        </Graphic>
    </GraphicFill>
</Fill>

La función para la multiplicación es

<ogc:Mul>
    <ogc:PropertyName>Orientation</ogc:PropertyName>
    <ogc:Literal>200</ogc:Literal>
</ogc:Mul> 

para el seno no estoy seguro de cuál es la función es, pero no funciona cuando sólo la multiplicación se utiliza. Esto es necesario porque cuando la adición de las escotillas de los objetos, no hay necesidad de trazar una escotilla con un ángulo de 45 a uno de los lados del objeto. Algo como esto, pero cuando el objeto se gira un cierto ángulo.

goal

6voto

user2831 Puntos 11

Se pueden hacer matemáticas en SLD en muchos lugares, pero un elemento de WellKnownMark no es uno de ellos.

Esto es lo que dice la norma, GeoServer tiene una extensión personalizada que permite a una expresión de CQL en medio de un nombre de marca como esta:

wkt://LINESTRING(0 0, ${Orientation * 200} 33)

No pude intentarlo hacia fuera, pero debería funcionar.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X