package org.jdesktop.swingx.mapviewer;
/**
* The <code>GeoBounds</code> class provides access the the North East and South
* West corners of the bounds and provides an intersects method.
*
* @author Dan Andrews
*/
//public class GeoBounds {
//
// /** Internal representation of the bounds */
// private Rectangle2D[] rects;
//
// /**
// * Constructor.
// *
// * @param minLat
// * The minimum latitude.
// * @param minLng
// * The minimum longitude.
// * @param maxLat
// * The maximum latitude.
// * @param maxLng
// * The maximum longitude.
// */
// public GeoBounds(double minLat, double minLng, double maxLat, double maxLng) {
// setRect(minLat, minLng, maxLat, maxLng);
// }
//
// /**
// * Constructor.
// *
// * @param geoPositions
// * A non null list of 2 or more different <code>GeoBounds</code>
// * objects.
// */
// public GeoBounds(Set<GeoPosition> geoPositions) {
// if (geoPositions == null || geoPositions.size() < 2) {
// throw new IllegalArgumentException(
// "The attribute 'geoPositions' cannot be null and must "
// + "have 2 or more elements.");
// }
// double minLat = Integer.MAX_VALUE;
// double minLng = Integer.MAX_VALUE;
// double maxLat = Integer.MIN_VALUE;
// double maxLng = Integer.MIN_VALUE;
// for (GeoPosition position : geoPositions) {
// minLat = Math.min(minLat, position.getY());
// minLng = Math.min(minLng, position.getX());
// maxLat = Math.max(maxLat, position.getY());
// maxLng = Math.max(maxLng, position.getX());
// }
// setRect(minLat, minLng, maxLat, maxLng);
// }
//
// /**
// * Sets the internal rectangle representation.
// *
// * @param minLat
// * The minimum latitude.
// * @param minLng
// * The minimum longitude.
// * @param maxLat
// * The maximum latitude.
// * @param maxLng
// * The maximum longitude.
// */
// private void setRect(double minLat, double minLng, double maxLat,
// double maxLng) {
// if (!(minLat < maxLat)) {
// throw new IllegalArgumentException(
// "GeoBounds is not valid - minLat must be less that maxLat.");
// }
// if (!(minLng < maxLng)) {
// if (minLng > 0 && minLng < 180 && maxLng < 0) {
// rects = new Rectangle2D[] {
// // split into two rects e.g. 176.8793 to 180 and -180 to
// // -175.0104
// new Rectangle2D.Double(minLng, minLat, 180 - minLng,
// maxLat - minLat),
// new Rectangle2D.Double(-180, minLat, maxLng + 180,
// maxLat - minLat) };
// } else {
// rects = new Rectangle2D[] { new Rectangle2D.Double(minLng,
// minLat, maxLng - minLng, maxLat - minLat) };
//
// throw new IllegalArgumentException(
// "GeoBounds is not valid - minLng must be less that maxLng or "
// + "minLng must be greater than 0 and maxLng must be less than 0.");
// }
// } else {
// rects = new Rectangle2D[] { new Rectangle2D.Double(minLng, minLat,
// maxLng - minLng, maxLat - minLat) };
// }
// }
//
// /**
// * Determines if this bounds intersects the other bounds.
// *
// * @param other
// * The other bounds to test for intersection with.
// * @return Returns true if bounds intersect.
// */
// public boolean intersects(GeoBounds other) {
// boolean rv = false;
// for (Rectangle2D r1 : rects) {
// for (Rectangle2D r2 : other.rects) {
// rv = r1.intersects(r2);
// if (rv) {
// break;
// }
// }
// if (rv) {
// break;
// }
//
// }
// return rv;
// }
//
// /**
// * Gets the north west position.
// *
// * @return Returns the north west position.
// */
// public GeoPosition getNorthWest() {
// return new GeoPosition(rects[0].getX(), rects[0].getMaxY());
// }
//
// /**
// * Gets the south east position.
// *
// * @return Returns the south east position.
// */
// public GeoPosition getSouthEast() {
// Rectangle2D r = rects[0];
// if (rects.length > 1) {
// r = rects[1];
// }
// return new GeoPosition(r.getMaxX(), r.getY());
// }
//
//}