@Override
public void queryOids(List<Long> oids, List<Long> oidsFiltered, long croid, EClass eClass, Tiles tiles) {
if (tiles.getTileIds().size() > 1) {
throw new NotImplementedException("Only one tile id supported in this method");
queries.add(QueryFactory.equal(ECLASS, eClass));
if (tiles.getTileIds().contains(0) && tiles.getMaxDepth() == 0) {
Integer tileId = tiles.getTileIds().iterator().next();
if (level < tiles.getMaxDepth()) {
queries.add(QueryFactory.equal(TILE_ID, tileId));
} else if (level > tiles.getMaxDepth()) {
LOGGER.info("Not cool");
} else {
if (tiles.getMaximumThreshold() != -1 && tiles.getMinimumThreshold() != -1) {
queries.add(QueryFactory.between(DENSITY, tiles.getMinimumThreshold(), false, tiles.getMaximumThreshold(), true));
} else {
if (tiles.getMaximumThreshold() != -1) {
queries.add(QueryFactory.lessThanOrEqualTo(DENSITY, tiles.getMaximumThreshold()));
if (tiles.getMinimumThreshold() != -1) {
queries.add(QueryFactory.greaterThan(DENSITY, tiles.getMinimumThreshold()));
QueryFactory.applyThresholds(QueryFactory.threshold(EngineThresholds.INDEX_ORDERING_SELECTIVITY, 1.0))));
for (GeometryObject geometryObject : retrieve) {
if (tiles.getMinimumReuseThreshold() != -1 && tiles.getMinimumReuseThreshold() <= geometryObject.getSaveableTriangles()) {