static List getProperties(DistanceBufferOperator op) { List l = new ArrayList(); l.add(distanceBufferOpProperty(op.getExpression1())); l.add(distanceBufferOpProperty(op.getExpression2())); l.add(new Object[] {new QName(FES.NAMESPACE, "Distance"), op.getDistance()}); return l; }
public Object getProperty(Object object, QName name) throws Exception { DistanceBufferOperator operator = (DistanceBufferOperator) object; Object property = OGCUtils.property(operator.getExpression1(), operator.getExpression2(), name); if (property != null) { return property; } if ("Distance".equals(name.getLocalPart())) { return new Double(operator.getDistance()); } return null; } }
public static Object buildDistanceBufferOperation( String geoOperation, DistanceBufferOperator filter, Object extraData, ExpressionToText visitor) { LOGGER.finer("exporting " + geoOperation); StringBuilder output = asStringBuilder(extraData); output.append(geoOperation).append("("); Expression expr = filter.getExpression1(); expr.accept(visitor, output); output.append(", "); filter.getExpression2().accept(visitor, output); output.append(", "); output.append(filter.getDistance()); output.append(", "); output.append(filter.getDistanceUnits()); output.append(")"); return output; }
/** * Returns the center of the reference geometry of the distance buffer operator, in case * * @param operator * @return */ protected Coordinate getReferenceGeometryCentroid(DistanceBufferOperator operator) { Geometry geom = operator.getExpression1().evaluate(null, Geometry.class); if (geom == null) { geom = operator.getExpression2().evaluate(null, Geometry.class); } if (geom == null) { return null; } return geom.getCentroid().getCoordinate(); }
/** Converts a distance buffer op to an intersects againt the buffered input geometry */ private Object visitDistanceBufferOperator( DistanceBufferOperator filter, boolean truth, Object extraData) { // SDE can assert only one way, we need to invert from contains to within in case the // assertion is the other way around PropertyName property; Literal literal; { Expression expression1 = filter.getExpression1(); Expression expression2 = filter.getExpression2(); if (expression1 instanceof PropertyName && expression2 instanceof Literal) { property = (PropertyName) expression1; literal = (Literal) expression2; } else if (expression2 instanceof PropertyName && expression1 instanceof Literal) { property = (PropertyName) expression2; literal = (Literal) expression1; } else { // not supported throw new IllegalArgumentException( "expected propertyname/literal, got " + expression1 + "/" + expression2); } } final Geometry geom = literal.evaluate(null, Geometry.class); final double distance = filter.getDistance(); final Geometry buffer = geom.buffer(distance); FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(); BinarySpatialOperator intersects = ff.intersects(property, ff.literal(buffer)); addSpatialFilter(intersects, SeFilter.METHOD_II_OR_ET, truth, extraData); return extraData; }
Geometry geometry = distanceFilter.getExpression2().evaluate(null, Geometry.class); if (geometry.getUserData() != null) {
.encode( elems[1], lf.getExpression2().evaluate(null, Geometry.class), output, if (Filters.getExpressionType(lf.getExpression2()) == org.geotools.filter.ExpressionType.ATTRIBUTE) { elems[0].getType() .encode(elems[0], lf.getExpression2(), output, hints); // prop name elems[1].getType() .encode(
public Object getProperty(Object object, QName name) throws Exception { DistanceBufferOperator operator = (DistanceBufferOperator) object; Object property = OGCUtils.property(operator.getExpression1(), operator.getExpression2(), name); if (property != null) { return property; } if ("Distance".equals(name.getLocalPart())) { return new Double(operator.getDistance()); } return null; } }
public Object getProperty(Object object, QName name) throws Exception { DistanceBufferOperator operator = (DistanceBufferOperator) object; Object property = OGCUtils.property(operator.getExpression1(), operator.getExpression2(), name); if (property != null) { return property; } if ("Distance".equals(name.getLocalPart())) { return new Double(operator.getDistance()); } return null; } }
public static Object buildDistanceBufferOperation(final String geoOperation, DistanceBufferOperator filter, Object extraData){ LOGGER.finer("exporting " + geoOperation); StringBuilder output = asStringBuilder(extraData); output.append(geoOperation).append("("); Expression expr = filter.getExpression1(); ExpressionToText visitor = new ExpressionToText(); expr.accept(visitor, output); output.append(", "); filter.getExpression2().accept(visitor, output); output.append(")"); return output; }
Expression expression2 = filter.getExpression2();