use of org.locationtech.geowave.core.store.query.constraints.BasicQueryByClass.ConstraintSet in project geowave by locationtech.
the class ChooseLocalityPreservingQueryStrategyTest method createConstraints.
private ConstraintsByClass createConstraints(final double lat, final double lon, final double time) {
final ConstraintSet cs1 = new ConstraintSet();
cs1.addConstraint(LatitudeDefinition.class, new ConstraintData(new ConstrainedIndexValue(0, lat), true));
cs1.addConstraint(LongitudeDefinition.class, new ConstraintData(new ConstrainedIndexValue(0, lon), true));
final ConstraintSet cs2a = new ConstraintSet();
cs2a.addConstraint(TimeDefinition.class, new ConstraintData(new ConstrainedIndexValue(0, time), true));
return new ConstraintsByClass(Arrays.asList(cs2a)).merge(Collections.singletonList(cs1));
}
use of org.locationtech.geowave.core.store.query.constraints.BasicQueryByClass.ConstraintSet in project geowave by locationtech.
the class QueryIndexHelper method getTimeConstraintsFromIndex.
public static ConstraintSet getTimeConstraintsFromIndex(final StatisticsCache statisticsCache, final TimeDescriptors timeDescriptors) {
if ((timeDescriptors.getEndRange() != null) || (timeDescriptors.getStartRange() != null)) {
final TemporalRange endRange = getTimeRange(statisticsCache, timeDescriptors.getEndRange());
final TemporalRange startRange = getTimeRange(statisticsCache, timeDescriptors.getStartRange());
if ((endRange != null) && (startRange != null)) {
return ExplicitSpatialTemporalQuery.createConstraints(startRange.union(endRange), true);
} else if (endRange != null) {
return ExplicitSpatialTemporalQuery.createConstraints(endRange, true);
} else if (startRange != null) {
return ExplicitSpatialTemporalQuery.createConstraints(startRange, true);
}
} else if (timeDescriptors.getTime() != null) {
final TemporalRange range = getTimeRange(statisticsCache, timeDescriptors.getTime());
if (range != null) {
return ExplicitSpatialTemporalQuery.createConstraints(range, true);
}
}
return new ConstraintSet();
}
use of org.locationtech.geowave.core.store.query.constraints.BasicQueryByClass.ConstraintSet in project geowave by locationtech.
the class GeometryUtils method basicGeoConstraintsWrapperFromGeometry.
/**
* This utility method will convert a JTS geometry to contraints that can be used in a GeoWave
* query.
*
* @return Constraints as a mapping of NumericData objects representing ranges for a latitude
* dimension and a longitude dimension
*/
public static GeoConstraintsWrapper basicGeoConstraintsWrapperFromGeometry(final Geometry geometry) {
final List<ConstraintSet> set = new LinkedList<>();
final boolean geometryConstraintsExactMatch = constructListOfConstraintSetsFromGeometry(geometry, set, true);
return new GeoConstraintsWrapper(new ConstraintsByClass(set), geometryConstraintsExactMatch, geometry);
}
use of org.locationtech.geowave.core.store.query.constraints.BasicQueryByClass.ConstraintSet in project geowave by locationtech.
the class GeometryUtils method basicConstraintSetFromEnvelope.
/**
* This utility method will convert a JTS envelope to contraints that can be used in a GeoWave
* query.
*
* @return Constraints as a mapping of NumericData objects representing ranges for a latitude
* dimension and a longitude dimension
*/
public static ConstraintSet basicConstraintSetFromEnvelope(final Envelope env) {
// Create a NumericRange object using the x axis
final NumericRange rangeLongitude = new NumericRange(env.getMinX(), env.getMaxX());
// Create a NumericRange object using the y axis
final NumericRange rangeLatitude = new NumericRange(env.getMinY(), env.getMaxY());
final Map<Class<? extends NumericDimensionDefinition>, ConstraintData> constraintsPerDimension = new HashMap<>();
// Create and return a new IndexRange array with an x and y axis
// range
final ConstraintData xRange = new ConstraintData(rangeLongitude, false);
final ConstraintData yRange = new ConstraintData(rangeLatitude, false);
constraintsPerDimension.put(CustomCRSUnboundedSpatialDimensionX.class, xRange);
constraintsPerDimension.put(CustomCRSUnboundedSpatialDimensionY.class, yRange);
constraintsPerDimension.put(CustomCRSBoundedSpatialDimensionX.class, xRange);
constraintsPerDimension.put(CustomCRSBoundedSpatialDimensionY.class, yRange);
constraintsPerDimension.put(LongitudeDefinition.class, xRange);
constraintsPerDimension.put(LatitudeDefinition.class, yRange);
return new ConstraintSet(constraintsPerDimension);
}
use of org.locationtech.geowave.core.store.query.constraints.BasicQueryByClass.ConstraintSet in project geowave by locationtech.
the class GeometryUtils method basicConstraintsFromPoint.
/**
* This utility method will convert a JTS envelope to that can be used in a GeoWave query.
*
* @return Constraints as a mapping of NumericData objects representing ranges for a latitude
* dimension and a longitude dimension
*/
public static ConstraintSet basicConstraintsFromPoint(final double latitudeDegrees, final double longitudeDegrees) {
// Create a NumericData object using the x axis
final NumericData latitude = new NumericValue(latitudeDegrees);
// Create a NumericData object using the y axis
final NumericData longitude = new NumericValue(longitudeDegrees);
final Map<Class<? extends NumericDimensionDefinition>, ConstraintData> constraintsPerDimension = new HashMap<>();
// Create and return a new IndexRange array with an x and y axis
// range
constraintsPerDimension.put(LongitudeDefinition.class, new ConstraintData(longitude, false));
constraintsPerDimension.put(LatitudeDefinition.class, new ConstraintData(latitude, false));
return new ConstraintSet(constraintsPerDimension);
}
Aggregations