Revision 44431
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STMakePointFunction.java | ||
---|---|---|
1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
|
2 |
|
|
3 |
import org.apache.commons.lang3.Range; |
|
4 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_ST_MAKEPOINT; |
|
5 |
import org.gvsig.expressionevaluator.Interpreter; |
|
6 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
|
7 |
import org.gvsig.fmap.geom.Geometry; |
|
8 |
import org.gvsig.fmap.geom.GeometryUtils; |
|
9 |
|
|
10 |
public class STMakePointFunction extends AbstractFunction { |
|
11 |
|
|
12 |
public STMakePointFunction() { |
|
13 |
super("OGC", FUNCTION_ST_MAKEPOINT, Range.between(2,4)); |
|
14 |
} |
|
15 |
|
|
16 |
@Override |
|
17 |
public boolean allowConstantFolding() { |
|
18 |
return true; |
|
19 |
} |
|
20 |
|
|
21 |
@Override |
|
22 |
public Object call(Interpreter interpreter, Object[] args) throws Exception { |
|
23 |
double x = this.getDouble(args, 0); |
|
24 |
double y = this.getDouble(args, 1); |
|
25 |
Geometry geom; |
|
26 |
switch(args.length) { |
|
27 |
default: |
|
28 |
case 2: |
|
29 |
geom = GeometryUtils.createPoint(x, y); |
|
30 |
break; |
|
31 |
case 3: |
|
32 |
double z = this.getDouble(args, 2); |
|
33 |
geom = GeometryUtils.createPoint(x, y, z); |
|
34 |
break; |
|
35 |
case 4: |
|
36 |
z = this.getDouble(args, 2); |
|
37 |
double m = this.getDouble(args, 3); |
|
38 |
geom = GeometryUtils.createPoint(x, y, z, m); |
|
39 |
break; |
|
40 |
} |
|
41 |
return geom; |
|
42 |
} |
|
43 |
|
|
44 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STPointFunction.java | ||
---|---|---|
4 | 4 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_ST_POINT; |
5 | 5 |
import org.gvsig.expressionevaluator.Interpreter; |
6 | 6 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
7 |
import org.gvsig.fmap.geom.Geometry; |
|
8 | 7 |
import org.gvsig.fmap.geom.GeometryUtils; |
8 |
import org.gvsig.fmap.geom.primitive.Point; |
|
9 | 9 |
|
10 | 10 |
public class STPointFunction extends AbstractFunction { |
11 | 11 |
|
12 | 12 |
public STPointFunction() { |
13 |
super("OGC", FUNCTION_ST_POINT, Range.between(2,4));
|
|
13 |
super("OGC", FUNCTION_ST_POINT, Range.is(2));
|
|
14 | 14 |
} |
15 | 15 |
|
16 | 16 |
@Override |
... | ... | |
22 | 22 |
public Object call(Interpreter interpreter, Object[] args) throws Exception { |
23 | 23 |
double x = this.getDouble(args, 0); |
24 | 24 |
double y = this.getDouble(args, 1); |
25 |
Geometry geom; |
|
26 |
switch(args.length) { |
|
27 |
default: |
|
28 |
case 2: |
|
29 |
geom = GeometryUtils.createPoint(x, y); |
|
30 |
break; |
|
31 |
case 3: |
|
32 |
double z = this.getDouble(args, 2); |
|
33 |
geom = GeometryUtils.createPoint(x, y, z); |
|
34 |
break; |
|
35 |
case 4: |
|
36 |
z = this.getDouble(args, 2); |
|
37 |
double m = this.getDouble(args, 3); |
|
38 |
geom = GeometryUtils.createPoint(x, y, z, m); |
|
39 |
break; |
|
40 |
} |
|
25 |
Point geom = GeometryUtils.createPoint(x, y); |
|
41 | 26 |
return geom; |
42 | 27 |
} |
43 | 28 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultExpressionBuilder.java | ||
---|---|---|
1755 | 1755 |
} |
1756 | 1756 |
|
1757 | 1757 |
@Override |
1758 |
public Function ST_MakePoint(Value x, Value y) { |
|
1759 |
return function(FUNCTION_ST_MAKEPOINT, x, y); |
|
1760 |
} |
|
1761 |
|
|
1762 |
@Override |
|
1763 |
public Function ST_MakePoint(Value x, Value y, Value z) { |
|
1764 |
return function(FUNCTION_ST_MAKEPOINT, x, y, z); |
|
1765 |
} |
|
1766 |
|
|
1767 |
@Override |
|
1768 |
public Function ST_MakePoint(Value x, Value y, Value z, Value m) { |
|
1769 |
return function(FUNCTION_ST_MAKEPOINT, x, y, z, m); |
|
1770 |
} |
|
1771 |
|
|
1772 |
@Override |
|
1758 | 1773 |
public Function ST_SetSRID(Value geom, Value srid) { |
1759 | 1774 |
return function(FUNCTION_ST_POINT, geom, srid); |
1760 | 1775 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/symboltable/OGCSymbolTable.java | ||
---|---|---|
23 | 23 |
import org.gvsig.expressionevaluator.impl.function.spatial.STIntersectsFunction; |
24 | 24 |
import org.gvsig.expressionevaluator.impl.function.spatial.STIsSimpleFunction; |
25 | 25 |
import org.gvsig.expressionevaluator.impl.function.spatial.STIsValidFunction; |
26 |
import org.gvsig.expressionevaluator.impl.function.spatial.STMakePointFunction; |
|
26 | 27 |
import org.gvsig.expressionevaluator.impl.function.spatial.STNumGeometriesFunction; |
27 | 28 |
import org.gvsig.expressionevaluator.impl.function.spatial.STNumPointsFunction; |
28 | 29 |
import org.gvsig.expressionevaluator.impl.function.spatial.STOverlapsFunction; |
... | ... | |
93 | 94 |
this.addFunction(new STSRIDFunction()); |
94 | 95 |
this.addFunction(new STSetSRIDFunction()); |
95 | 96 |
this.addFunction(new STPointFunction()); |
97 |
this.addFunction(new STMakePointFunction()); |
|
96 | 98 |
|
97 | 99 |
this.addFunction(new AndAndOperator()); |
98 | 100 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/ExpressionBuilder.java | ||
---|---|---|
52 | 52 |
public static final String FUNCTION_ST_WITHIN = "ST_Within"; |
53 | 53 |
public static final String FUNCTION_ST_SETSRID = "ST_SetSRID"; |
54 | 54 |
public static final String FUNCTION_ST_POINT = "ST_Point"; |
55 |
public static final String FUNCTION_ST_MAKEPOINT = "ST_MakePoint"; |
|
55 | 56 |
public static final String FUNCTION_ST_UNIONAGGREGATE = "ST_UnionAggregate"; |
56 | 57 |
public static final String FUNCTION_ST_EXTENTAGGREGATE = "ST_ExtentAggregate"; |
57 | 58 |
|
... | ... | |
418 | 419 |
|
419 | 420 |
public Function ST_Point(Value x, Value y); |
420 | 421 |
|
422 |
public Function ST_MakePoint(Value x, Value y); |
|
423 |
|
|
424 |
public Function ST_MakePoint(Value x, Value y, Value z); |
|
425 |
|
|
426 |
public Function ST_MakePoint(Value x, Value y, Value z, Value m); |
|
427 |
|
|
421 | 428 |
public Function ST_PointN(Value geom, Value n); |
422 | 429 |
|
423 | 430 |
public Function ST_SRID(Value geom); |
Also available in: Unified diff