Revision 47729

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/resources/org/gvsig/expressionevaluator/functions/en/ST_Length.json
1
{
2
    "name": "ST_Length",
3
    "group": "OGC",
4
    "template": "ST_Length({{geometry}})",
5
    "args": [
6
        "geometry - Geometry from which you have to calculate "
7
    ],
8
    "description": "Returns the 2D length of the geometry in units of spatial reference",
9
    "returnType": "Double",
10
    "sqlCompatible": true
11
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.geometry/org.gvsig.expressionevaluator.geometry.lib/org.gvsig.expressionevaluator.geometry.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/symboltable/OGCSymbolTable.java
45 45
import org.gvsig.expressionevaluator.impl.function.spatial.PointByAngleFunction;
46 46
import org.gvsig.expressionevaluator.impl.function.spatial.STAsBinaryFunction;
47 47
import org.gvsig.expressionevaluator.impl.function.spatial.STBoundaryFunction;
48
import org.gvsig.expressionevaluator.impl.function.spatial.STLengthFunction;
48 49
import org.gvsig.expressionevaluator.spi.AbstractSymbolTable;
49 50

  
50 51
/**
......
105 106
        this.addFunction(new STTransformFunction());
106 107
        this.addFunction(new STBoundaryFunction());
107 108
        this.addFunction(new STAsBinaryFunction());
109
        this.addFunction(new STLengthFunction());
108 110

  
109 111
        
110 112
        this.addFunction(new PointByAngleFunction());
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.geometry/org.gvsig.expressionevaluator.geometry.lib/org.gvsig.expressionevaluator.geometry.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STLengthFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.Interpreter;
5
import org.gvsig.expressionevaluator.spi.AbstractGeometryFunction;
6
import org.gvsig.fmap.geom.Geometry;
7

  
8
public class STLengthFunction extends AbstractGeometryFunction {
9

  
10
    public STLengthFunction() {
11
        super("OGC", "ST_Length", Range.is(1));
12
    }
13
    
14
    @Override
15
    public boolean allowConstantFolding() {
16
        return true;
17
    }
18
    
19
    @Override
20
    public Object call(Interpreter interpreter, Object[] args) throws Exception {
21
        Geometry geom = getGeom(args, 0);
22
        double r = geom.perimeter();
23
        return r;
24
    }
25
    
26
}

Also available in: Unified diff