Sector { public boolean intersect(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude) { double maxLatitude = Location.clampLatitude(minLatitude + (deltaLatitude > 0 ? deltaLatitude : Double.NaN)); double maxLongitude = Location.clampLongitude(minLongitude + (deltaLongitude > 0 ? deltaLongitude : Double.NaN)); if ((this.minLatitude < maxLatitude) && (this.maxLatitude > minLatitude) && (this.minLongitude < maxLongitude) && (this.maxLongitude > minLongitude)) { if (this.minLatitude < minLatitude) this.minLatitude = minLatitude; if (this.maxLatitude > maxLatitude) this.maxLatitude = maxLatitude; if (this.minLongitude < minLongitude) this.minLongitude = minLongitude; if (this.maxLongitude > maxLongitude) this.maxLongitude = maxLongitude; return true; } return false; } Sector();  Sector(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude);  Sector(Sector sector); static Sector fromDegrees(double latitudeDegrees, double longitudeDegrees,
                                     double deltaLatitudeDegrees, double deltaLongitudeDegrees); static Sector fromRadians(double latitudeRadians, double longitudeRadians,
                                     double deltaLatitudeRadians, double deltaLongitudeRadians); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); boolean isEmpty(); boolean isFullSphere(); double minLatitude(); double maxLatitude(); double minLongitude(); double maxLongitude(); double deltaLatitude(); double deltaLongitude(); double centroidLatitude(); double centroidLongitude(); Location centroid(Location result); Sector set(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude); Sector set(Sector sector); Sector setEmpty(); Sector setFullSphere(); boolean intersects(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude); boolean intersects(Sector sector); boolean intersectsOrNextTo(Sector sector); boolean intersect(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude); boolean intersect(Sector sector); boolean contains(double latitude, double longitude); boolean contains(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude); boolean contains(Sector sector); Sector union(double latitude, double longitude); Sector union(float[] array, int count, int stride); Sector union(double minLatitude, double minLongitude, double deltaLatitude, double deltaLongitude); Sector union(Sector sector); Sector translate(double deltaLatitude, double deltaLongitude);  }
@Test public void testIntersect() throws Exception { Sector a = Sector.fromDegrees(30, 100, 2.0, 2.0); Sector b = Sector.fromDegrees(31, 101, 2.0, 2.0); Sector northeast = Sector.fromDegrees(31, 101, 1.0, 1.0); boolean intersected = a.intersect(b); assertTrue("intersecting", intersected); assertEquals("intersection", northeast, a); }