Statistics
| Revision:

svn-gvsig-desktop / 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 / STGeomFromTextFunction.java @ 44644

History | View | Annotate | Download (1.13 KB)

1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

    
3
import org.apache.commons.lang3.Range;
4
import org.cresques.cts.IProjection;
5
import org.gvsig.expressionevaluator.Interpreter;
6
import org.gvsig.expressionevaluator.spi.AbstractGeometryFunction;
7
import org.gvsig.fmap.crs.CRSFactory;
8
import org.gvsig.fmap.geom.Geometry;
9
import org.gvsig.fmap.geom.GeometryLocator;
10
import org.gvsig.fmap.geom.GeometryManager;
11

    
12
public class STGeomFromTextFunction extends AbstractGeometryFunction {
13

    
14
    public STGeomFromTextFunction() {
15
        super("OGC", "ST_GeomFromText", Range.between(1,2));
16
    }
17
    
18
    @Override
19
    public boolean allowConstantFolding() {
20
        return true;
21
    }
22
    
23
    @Override
24
    public Object call(Interpreter interpreter, Object[] args) throws Exception {
25
        GeometryManager geomManager = GeometryLocator.getGeometryManager();
26
        String wkt = getStr(args, 0);
27
        Geometry r = geomManager.createFrom(wkt);
28
        if( args.length==2 ) {
29
            int code = getInt(args, 1);
30
            IProjection proj = CRSFactory.getCRS("EPSG:"+code);
31
            r.setProjection(proj);
32
        }
33
        return r;
34
    }
35
    
36
}