org.opengis.filter.FilterFactory2.beyond()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(8.9k)|赞(0)|评价(0)|浏览(173)

本文整理了Java中org.opengis.filter.FilterFactory2.beyond()方法的一些代码示例,展示了FilterFactory2.beyond()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。FilterFactory2.beyond()方法的具体详情如下:
包路径:org.opengis.filter.FilterFactory2
类名称:FilterFactory2
方法名:beyond

FilterFactory2.beyond介绍

[英]Check if all of a geometry is more distant than the given distance from this object's geometry.
[中]检查所有几何体与该对象几何体的距离是否大于给定距离。

代码示例

代码示例来源:origin: geotools/geotools

Object cloneFilter(
      BinarySpatialOperator bso, Object extraData, Expression ex1, Expression ex2) {
    Beyond filter = (Beyond) bso;
    return ff.beyond(ex1, ex2, filter.getDistance(), filter.getDistanceUnits());
  }
}.transform(filter, extraData);

代码示例来源:origin: geotools/geotools

/**
   *
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   *
   * @generated modifiable
   */
  public Object parse(ElementInstance instance, Node node, Object value) throws Exception {

    Expression[] operands = OGCUtils.spatial(node, filterFactory, geometryFactory);
    double distance = ((Double) node.getChildValue(Double.class)).doubleValue();
    Object units = node.getChild("Distance").getAttributeValue("units");
    return filterFactory.beyond(
        operands[0], operands[1], distance, units == null ? null : units.toString());
  }
}

代码示例来源:origin: geotools/geotools

@Override
  public Filter replaceExpressions(
      Beyond filter, Expression expression1, Expression expression2) {
    return ff.beyond(
        expression1,
        expression2,
        filter.getDistance(),
        filter.getDistanceUnits(),
        filter.getMatchAction());
  }
});

代码示例来源:origin: geotools/geotools

/**
 * @throws SAXException
 * @see org.geotools.xml.schema.Type#getValue(org.geotools.xml.schema.Element,
 *     org.geotools.xml.schema.ElementValue[], org.xml.sax.Attributes, java.util.Map)
 */
public Object getValue(Element element, ElementValue[] value, Attributes attrs, Map hints)
    throws SAXException {
  FilterFactory2 factory = FilterSchema.filterFactory(hints);
  try {
    Expression geometry1 = (Expression) value[0].getValue();
    Expression geometry2 = (Expression) value[1].getValue();
    Literal literal = (Literal) value[2];
    double distance = ((Number) literal.getValue()).doubleValue();
    return factory.beyond(geometry1, geometry2, distance, null);
  } catch (ClassCastException wrong) {
    throw new SAXException(wrong);
  } catch (IllegalFilterException illegalFilterException) {
    throw new SAXException(illegalFilterException);
  }
}

代码示例来源:origin: geotools/geotools

public Object visit(Beyond filter, Object arg1) {
  Expression[][] exps = visitBinarySpatialOp(filter);
  List combinedFilters = new ArrayList(exps.length);
  for (int i = 0; i < exps.length; i++) {
    Expression left = exps[i][0];
    Expression right = exps[i][1];
    Filter unrolled =
        ff.beyond(
            left,
            right,
            filter.getDistance(),
            filter.getDistanceUnits(),
            filter.getMatchAction());
    combinedFilters.add(unrolled);
  }
  Filter unrolled = combineOred(combinedFilters);
  return unrolled;
}

代码示例来源:origin: geotools/geotools

public DistanceBufferOperator buildSpatialBeyondFilter() throws CQLException {
  String unit = this.resultStack.popStringValue();
  double tolerance = this.resultStack.popDoubleValue();
  Expression geom = this.resultStack.popExpression();
  Expression property = this.resultStack.popExpression();
  FilterFactory2 ff =
      (FilterFactory2)
          filterFactory; // TODO this cast must be removed. It depends of Geometry
  // implementation
  return ff.beyond(property, geom, tolerance, unit);
}

代码示例来源:origin: geotools/geotools

if (value.getAttributes().getNamedItem("units") != null)
  units = value.getAttributes().getNamedItem("units").getTextContent();
return FILTER_FACT.beyond(left, right, distance, units);

代码示例来源:origin: geotools/geotools

static Beyond beyond() {
  return f.beyond(f.property("the_geom"), f.literal(geometry()), 1.0d, "m");
}

代码示例来源:origin: geotools/geotools

public static Beyond beyond() {
  return f.beyond(f.property("the_geom"), f.literal(geometry()), 1.0d, "m");
}

代码示例来源:origin: geotools/geotools

public Object visit(Beyond filter, Object extraData) {
  Expression geometry1 = visit(filter.getExpression1(), extraData);
  Expression geometry2 = visit(filter.getExpression2(), extraData);
  double distance = filter.getDistance();
  String units = filter.getDistanceUnits();
  return getFactory(extraData)
      .beyond(geometry1, geometry2, distance, units, filter.getMatchAction());
}

代码示例来源:origin: geotools/geotools

Filter filter = fac.beyond(property, literal, 5, "x", MatchAction.ANY);
Filter expected =
    fac.or(
        new ArrayList<Filter>(
            Arrays.asList(
                fac.beyond(property, literal1, 5, "x", MatchAction.ANY),
                fac.beyond(property, literal2, 5, "x", MatchAction.ANY),
                fac.beyond(property, literal3, 5, "x", MatchAction.ANY))));
filter = fac.beyond(property, literal, 5, "x", MatchAction.ALL);
expected =
    fac.and(
        new ArrayList<Filter>(
            Arrays.asList(
                fac.beyond(property, literal1, 5, "x", MatchAction.ANY),
                fac.beyond(property, literal2, 5, "x", MatchAction.ANY),
                fac.beyond(property, literal3, 5, "x", MatchAction.ANY))));
filter = fac.beyond(property, literal, 5, "x", MatchAction.ONE);
expected =
    fac.or(
                    new ArrayList<Filter>(
                        Arrays.asList(
                            fac.beyond(
                                property,
                                literal1,
                                MatchAction.ONE),

代码示例来源:origin: geotools/geotools

new LiteralExpressionImpl(gf.createPolygon(gf.createLinearRing(coords2), null));
Beyond filter = fac.beyond(left, right, 20, "m");
LOGGER.finer(filter.toString());
LOGGER.finer("contains feature: " + filter.evaluate(testFeature));
assertFalse(filter.evaluate(testFeature));
filter = fac.beyond(left, right, 2, "m");
LOGGER.finer("contains feature: " + filter.evaluate(testFeature));
assertTrue(filter.evaluate(testFeature));
coords2[4] = new Coordinate(20, 20);
right = fac.literal(gf.createPolygon(gf.createLinearRing(coords2), null));
filter = fac.beyond(left, right, 2, "m");
LOGGER.finer(filter.toString());
LOGGER.finer("contains feature: " + filter.evaluate(testFeature));
filter = fac.beyond(left, right, 2, "m");
LOGGER.finer(filter.toString());
LOGGER.finer("contains feature: " + filter.evaluate(testFeature));

代码示例来源:origin: geotools/geotools

private void assertBeyondFilter(int expectedMatches, double distance, String unit)
      throws IOException {
    FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null);
    final PropertyName geomProperty = ff.property(aname("geometry"));
    final ContentFeatureSource features = dataStore.getFeatureSource(tname("ft1"));

    // too short distance
    Beyond filter = ff.beyond(geomProperty, ff.literal(REFERENCE_POINT), distance, unit);
    FeatureCollection fc = features.getFeatures(filter);
    assertEquals(expectedMatches, fc.size());
  }
}

代码示例来源:origin: geotools/geotools

@Test
public void testBeyond() {
  Coordinate[] coords = new Coordinate[] {new Coordinate(0, 0), new Coordinate(10, 10)};
  LineString lineString = new GeometryFactory().createLineString(coords);
  Filter filter = ff.beyond(ff.property("name"), ff.literal(lineString), 100, "m");
  Envelope env = (Envelope) filter.accept(visitor, null);
  assertEquals(infinity, env);
}

代码示例来源:origin: geotools/geotools

@Test
public void testNotBeyond() {
  Coordinate[] coords = new Coordinate[] {new Coordinate(0, 0), new Coordinate(10, 10)};
  LineString lineString = new GeometryFactory().createLineString(coords);
  Filter filter = ff.beyond(ff.property("name"), ff.literal(lineString), 100, "m");
  Envelope env = (Envelope) filter.accept(visitor, null);
  // the thing is not so smart to assess that not(beyond) -> within, but we have to make
  // sure that at least the returned envelope contains the real one
  assertEquals(infinity, env);
}

代码示例来源:origin: org.geotools/gt-main

Object cloneFilter(BinarySpatialOperator bso, Object extraData, Expression ex1,
      Expression ex2) {
    Beyond filter = (Beyond) bso;
    return ff.beyond(ex1, ex2, filter.getDistance(), filter.getDistanceUnits());
  }
}.transform(filter, extraData);

代码示例来源:origin: locationtech/geogig

@Override
public Filter[] visit(Beyond filter, Object extraData) {
  return boundedOp(filter,
      (g1, g2) -> ff.beyond(g1, g2, filter.getDistance(), filter.getDistanceUnits()),
      false);
}

代码示例来源:origin: org.geotools/gt-main

public Object visit(Beyond filter, Object extraData) {
  Expression geometry1= visit(filter.getExpression1(), extraData);
  Expression geometry2= visit(filter.getExpression2(), extraData);
  double distance=filter.getDistance();
  String units=filter.getDistanceUnits();
  return getFactory(extraData).beyond(geometry1, geometry2, distance, units);
}

代码示例来源:origin: org.geoserver/gs-wfs

public Object visit(Beyond filter, Object extraData) {
  Expression geometry1 = visitBinaryChild(filter.getExpression1(), extraData, 0);
  Expression geometry2 = visitBinaryChild(filter.getExpression2(), extraData, 1);
  double distance = filter.getDistance();
  String units = filter.getDistanceUnits();
  return getFactory(extraData)
      .beyond(geometry1, geometry2, distance, units, filter.getMatchAction());
}

代码示例来源:origin: geotools/geotools

filter = fac.beyond(expr1, expr2, 0.1, "");
assertEquals(filter.getMatchAction(), MatchAction.ANY);
filter = fac.beyond(expr1, expr2, 0.1, "");
assertEquals(filter.getMatchAction(), MatchAction.ANY);
filter = fac.contains(expr1, expr2);
filter = fac.beyond(expr1, expr2, 0.1, "", MatchAction.ALL);
assertEquals(filter.getMatchAction(), MatchAction.ALL);
filter = fac.beyond(expr1, expr2, 0.1, "", MatchAction.ONE);
assertEquals(filter.getMatchAction(), MatchAction.ONE);
filter = fac.contains(expr1, expr2, MatchAction.ALL);

相关文章