code: public static boolean tileAreasOverlap(Tile upperLeft, Tile lowerRight, Tile upperLeftOther, Tile lowerRightOther) {
          if (upperLeft.zoomLevel != upperLeftOther.zoomLevel) {
              return false;
          }
          if (upperLeft.equals(upperLeftOther) && lowerRight.equals(lowerRightOther)) {
              return true;
          }
          return getBoundaryAbsolute(upperLeft, lowerRight).intersects(getBoundaryAbsolute(upperLeftOther, lowerRightOther));
      }
docs: Returns true if two tile areas, defined by upper left and lower right tiles, overlap.
  Precondition: zoom levels of upperLeft/lowerRight and upperLeftOther/lowerRightOther are the
  same.
  
  @param upperLeft       tile in upper left corner of area 1.
  @param lowerRight      tile in lower right corner of area 1.
  @param upperLeftOther  tile in upper left corner of area 2.
  @param lowerRightOther tile in lower right corner of area 2.
  @return true if the areas overlap, false if zoom levels differ or areas do not overlap.