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

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

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

Filter.accept介绍

[英]Accepts a visitor.

Implementations of all subinterfaces must have with a method whose content is the following:

return visitor. 
FilterVisitor#visit(this, extraData);

[中]接待来访者。
所有子接口的实现必须具有以下内容的方法:

return visitor. 
FilterVisitor#visit(this, extraData);

代码示例

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

/**
 * Retypes a filter making sure the fids are using the internal typename prefix
 *
 * @param filter
 * @param typeMap
 */
Filter retypeFilter(Filter filter, FeatureTypeMap typeMap) {
  FidTransformeVisitor visitor = new FidTransformeVisitor(typeMap);
  return (Filter) filter.accept(visitor, null);
}

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

static Filter unmapIdentifiers(Filter filter, String viewName) {
  GranuleStoreViewFilterVisitor visitor = new GranuleStoreViewFilterVisitor(viewName);
  return (Filter) filter.accept(visitor, null);
}

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

public SimpleFeatureCollection subCollection(Filter filter) {
  // reproject the filter to the delegate native crs
  CoordinateReferenceSystem crs = getSchema().getCoordinateReferenceSystem();
  CoordinateReferenceSystem crsDelegate = delegate.getSchema().getCoordinateReferenceSystem();
  if (crs != null) {
    DefaultCRSFilterVisitor defaulter = new DefaultCRSFilterVisitor(FF, crs);
    filter = (Filter) filter.accept(defaulter, null);
    if (crsDelegate != null && !CRS.equalsIgnoreMetadata(crs, crsDelegate)) {
      ReprojectingFilterVisitor reprojector =
          new ReprojectingFilterVisitor(FF, delegate.getSchema());
      filter = (Filter) filter.accept(reprojector, null);
    }
  }
  SimpleFeatureCollection sub = delegate.subCollection(filter);
  if (sub != null) {
    try {
      ReprojectingFeatureCollection wrapper =
          new ReprojectingFeatureCollection(sub, target);
      wrapper.setDefaultSource(defaultSource);
      return wrapper;
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }
  return null;
}

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

Filter defaultedFilter = (Filter) filter.accept(defaultCRSVisitor, null);
Filter reprojectedFilter = (Filter) defaultedFilter.accept(reprojectingVisitor, null);

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

/**
 * Quickly look at the filter and determine the OperationName we need to check for in the
 * FilterCapabilities data structure.
 *
 * @param filter
 * @return Operation name
 */
public String toOperationName(Filter filter) {
  if (filter == null) return null;
  return (String) filter.accept(operationNameVisitor, null);
}

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

protected Filter expandBBox(Filter filter, double distance) {
  return (Filter)
      filter.accept(
          new BBOXExpandingFilterVisitor(distance, distance, distance, distance),
          null);
}

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

@Override
public Object visit(Or filter, Object extraData) {
  List<Filter> children = filter.getChildren();
  for (Filter child : children) {
    child.accept(this, extraData);
  }
  return extraData;
}

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

protected Filter aliasFilter(Filter filter, SimpleFeatureType featureType, String alias) {
  JoinQualifier jq = new JoinQualifier(featureType, alias);
  Filter resultFilter = (Filter) filter.accept(jq, null);
  return resultFilter;
}

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

/**
 * Generates the cql predicate associated to the {@link Filter} object.
 *
 * @param filter
 * @return cql predicate
 */
public static String toCQL(Filter filter) {
  FilterToCQL toCQL = new FilterToCQL();
  StringBuilder output = (StringBuilder) filter.accept(toCQL, new StringBuilder());
  return output.toString();
}
/**

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

public static Object buildNot(FilterVisitor filterToCQL, Not filter, Object extraData) {
  StringBuilder output = asStringBuilder(extraData);
  output.append("NOT (");
  filter.getFilter().accept(filterToCQL, output);
  output.append(")");
  return output;
}

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

public Object visit(Or filter, Object data) {
  if (data == null) return null;
  if (filter.getChildren() != null) {
    for (Filter child : filter.getChildren()) {
      data = child.accept(this, data);
      if (data == null) return null;
    }
  }
  return data;
}

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

/** overrides just to avoid the "WHERE" keyword */
@Override
public void encode(Filter filter) throws FilterToSQLException {
  if (getCapabilities().fullySupports(filter)) {
    filter.accept(this, null);
  } else {
    throw new FilterToSQLException("Filter type not supported");
  }
}

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

DBObject toQuery(Filter f) {
  if (isAll(f)) {
    return new BasicDBObject();
  }
  FilterToMongo v = new FilterToMongo(mapper);
  v.setFeatureType(getSchema());
  return (DBObject) f.accept(v, null);
}

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

/** Make sure it does not break with non spatial filters */
public void testNoProjection() {
  Filter idFilter = ff.id(Collections.singleton(ff.featureId("testType:1")));
  Filter clone = (Filter) idFilter.accept(reprojector, null);
  assertNotSame(idFilter, clone);
  assertEquals(idFilter, clone);
}

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

public void testNegateLessOrEqual() {
  Filter f = ff.not(ff.lessOrEqual(ff.property("prop"), ff.literal(10)));
  Filter result = (Filter) f.accept(simpleVisitor, null);
  assertEquals(ff.greater(ff.property("prop"), ff.literal(10)), result);
  // not simplified for complex features
  result = (Filter) f.accept(complexVisitor, null);
  assertEquals(f, result);
}

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

@Test
public void testVisitFidFilter() throws Exception {
  HashSet ids = new HashSet();
  ids.add(ff.featureId("david"));
  Filter filter = ff.id(ids);
  visitor = newVisitor(newCapabilities(Id.class));
  filter.accept(visitor, null);
  assertEquals(Filter.INCLUDE, visitor.getFilterPost());
  assertEquals(filter, visitor.getFilterPre());
}

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

public void testDualFilterNullOr() {
  Filter original =
      ff.or(
          Arrays.asList(
              ff.not(ff.isNull(ff.property("a"))), ff.isNull(ff.property("a"))));
  assertEquals(Filter.INCLUDE, original.accept(simpleVisitor, null));
}

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

public void testDualFilterAnd() {
  Filter original =
      ff.and(
          Arrays.asList(
              ff.not(ff.equal(ff.property("a"), ff.literal(3), true)),
              ff.equal(ff.property("a"), ff.literal(3), true)));
  assertEquals(Filter.EXCLUDE, original.accept(simpleVisitor, null));
}

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

@Test
public void testDWithin() {
  Point geom = new GeometryFactory().createPoint(new Coordinate(0, 0));
  Filter filter = ff.dwithin(ff.property("name"), ff.literal(geom), 100, "metre");
  Envelope env = (Envelope) filter.accept(visitor, null);
  assertEquals(new Envelope(-100, 100, -100, 100), env);
}

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

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

相关文章

微信公众号

最新文章

更多