}
}
public void search(String crs, final List<Layer<?>> layers, Geometry location, double buffer, QueryType queryType,
SearchType searchType, float ratio, final FeatureCallback callback) {
SearchByLocationRequest request = new SearchByLocationRequest();
String[] layerIds = new String[layers.size()];
for (int i = 0; i < layers.size(); i++) {
Layer<?> layer = layers.get(i);
layerIds[i] = layer.getServerLayerId();
if (layer instanceof FeaturesSupported) {
request.setFilter(layer.getId(), ((FeaturesSupported) layer).getFilter());
}
}
request.setBuffer(buffer);
request.setLayerIds(layerIds);
request.setLocation(geometryConverter.toDto(location));
request.setQueryType(queryType.getValue());
request.setSearchType(searchType.getValue());
request.setRatio(ratio);
request.setCrs(crs);
request.setFeatureIncludes(11);
Command command = new Command(SearchByLocationRequest.COMMAND);
command.setCommandRequest(request);
commandService.execute(command, new CommandCallback() {