org.heigit.ohsome.oshdb.api.mapreducer.MapReducerSettings Maven / Gradle / Ivy
Show all versions of oshdb-api Show documentation
package org.heigit.ohsome.oshdb.api.mapreducer;
import org.heigit.ohsome.oshdb.OSHDBBoundingBox;
import org.heigit.ohsome.oshdb.filter.FilterExpression;
import org.jetbrains.annotations.Contract;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Polygonal;
/**
* Interface defining the common setting methods found on MapReducer or MapAggregator objects.
*
* @param the class returned by all setting methods
*/
interface MapReducerSettings {
/**
* Set the area of interest to the given bounding box.
* Only objects inside or clipped by this bbox will be passed on to the analysis'
* `mapper` function.
*
* @param bboxFilter the bounding box to query the data in
* @return `this` mapReducer (can be used to chain multiple commands together)
*/
@Contract(pure = true)
M areaOfInterest(OSHDBBoundingBox bboxFilter);
/**
* Set the area of interest to the given polygon.
* Only objects inside or clipped by this polygon will be passed on to the analysis'
* `mapper` function.
*
* @param polygonFilter the bounding box to query the data in
* @return `this` mapReducer (can be used to chain multiple commands together)
*/
@Contract(pure = true)
M areaOfInterest(P polygonFilter);
/**
* Apply a textual filter to this query.
*
* @see oshdb-filter
* readme for a description of the filter syntax.
*
* @param f the filter string to apply
* @return a modified copy of this mapReducer (can be used to chain multiple commands together)
*/
@Contract(pure = true)
M filter(String f);
/**
* Apply a custom filter expression to this query.
*
* @see oshdb-filter
* readme and {@link org.heigit.ohsome.oshdb.filter} for further information about how
* to create such a filter expression object.
*
* @param f the {@link org.heigit.ohsome.oshdb.filter.FilterExpression} to apply
* @return a modified copy of this mapReducer (can be used to chain multiple commands together)
*/
@Contract(pure = true)
M filter(FilterExpression f);
}