Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -150,13 +150,14 @@ public FeatureLayerData infoQuery(final LayerQuery query, List<String> headers)
layerRadius = getMetadata().getMapOptions().getFeatureInfoRadius();
}
final Envelope clickBox = query.calcClickBox(layerRadius > -1 ? layerRadius : query.getLayerRadius());
final ValueReference geomProp = findGeometryProperty(style);

filter = (OperatorFilter) addBBoxConstraint(clickBox, filter, null, false);
filter = (OperatorFilter) addBBoxConstraint(clickBox, filter, geomProp, false);
filter = Filters.repair(filter, AppSchemas.collectProperyNames(featureStore.getSchema(), featureType));

LOG.debug("Querying the feature store(s)...");

QueryBuilder builder = new QueryBuilder(featureStore, filter, featureType, clickBox, query, null,
QueryBuilder builder = new QueryBuilder(featureStore, filter, featureType, clickBox, query, geomProp,
sortByFeatureInfo, getMetadata().getName());
List<Query> queries = builder.buildInfoQueries();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ static OperatorFilter buildFilterForMap(OperatorFilter filter, Style style, Laye
return filter;
}

static OperatorFilter buildFilter(Operator operator, FeatureType ft, Envelope clickBox) {
static OperatorFilter buildFilter(Operator operator, FeatureType ft, Envelope clickBox, ValueReference geomProp) {
if (ft == null) {
if (operator == null) {
return null;
Expand All @@ -112,9 +112,9 @@ static OperatorFilter buildFilter(Operator operator, FeatureType ft, Envelope cl
// obnoxious case where feature has no geometry properties (but features may
// have extra geometry props)
if (operator == null) {
return new OperatorFilter(new Intersects(null, clickBox));
return new OperatorFilter(new Intersects(geomProp, clickBox));
}
return new OperatorFilter(new And(operator, new Intersects(null, clickBox)));
return new OperatorFilter(new And(operator, new Intersects(geomProp, clickBox)));
}
if (operator == null) {
return new OperatorFilter(list.get(0));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,10 @@ List<Query> buildInfoQueries() {
public Query apply(FeatureType u) {
Filter f;
if (filter == null) {
f = buildFilter(null, u, bbox);
f = buildFilter(null, u, bbox, geomProp);
}
else {
f = buildFilter(((OperatorFilter) filter).getOperator(), u, bbox);
f = buildFilter((filter).getOperator(), u, bbox, geomProp);
}
return createQuery(u.getName(), f, -1, query.getFeatureCount(), -1, sortBy);
}
Expand All @@ -145,11 +145,11 @@ public Query apply(FeatureType u) {
else {
Filter f;
if (filter == null) {
f = buildFilter(null, featureStore.getSchema().getFeatureType(ftName), bbox);
f = buildFilter(null, featureStore.getSchema().getFeatureType(ftName), bbox, geomProp);
}
else {
f = buildFilter(((OperatorFilter) filter).getOperator(),
featureStore.getSchema().getFeatureType(ftName), bbox);
f = buildFilter((filter).getOperator(), featureStore.getSchema().getFeatureType(ftName), bbox,
geomProp);
}
queries.add(createQuery(ftName, f, -1, query.getFeatureCount(), -1, sortBy));
}
Expand Down