I think that Anata is more formal/polite than Kimi.
But sometimes, even Anata is offensive.
For example, students do not use Anata to call teachers. But, they NEVER use "Kimi" to call teachers.
When I was an undergraduate, a foreign postgraduate student called his professor as Anata, but the professor got angry very badly. In this case, he should have used "Sensei".
Please see the following URL as well, it might be helpful: https://www.quora.com/Whats-the-difference-betw...