package tim.prune.data; /** * Class to hold a rectangle of latitude/longitude * with minimum and maximum values for each */ public class LatLonRectangle { private DoubleRange _latRange = null; private DoubleRange _lonRange = null; /** * Constructor * @param inLatRange latitude range * @param inLonRange longitude range */ public LatLonRectangle(DoubleRange inLatRange, DoubleRange inLonRange) { _latRange = inLatRange; _lonRange = inLonRange; // MAYBE: Expand range by certain percentage } /** * @return true if the range is empty */ public boolean isEmpty() { return _latRange == null || _lonRange == null || !_latRange.hasData() || !_lonRange.hasData(); } /** * Check if a point is within the rectangle * @param inPoint point to check * @return true if point within rectangle */ public boolean containsPoint(DataPoint inPoint) { if (inPoint != null && !isEmpty()) { double pointLat = inPoint.getLatitude().getDouble(); double pointLon = inPoint.getLongitude().getDouble(); return (pointLat >= _latRange.getMinimum() && pointLat <= _latRange.getMaximum() && pointLon >= _lonRange.getMinimum() && pointLon <= _lonRange.getMaximum()); } return false; } }