Это происходит потому, что вы используете cr.getCount()/2.
Когда у вас будет четное число, тогда оно будет работать не нормально
Например, если у вас 4 строки, вы cr.getCount()/2 = 2
так что ваш цикл будет продолжаться от 0 до 2, значит 3 раза.
На самом деле это должно быть продолжено 2 раза, как ваша кодировка.
Теперь лат принимает нечетные числа, скажем 5, поэтому cr.getCount()/2 = 2
, потому что я - целочисленное значение, поэтому ваш цикл будет работать всего 3 раза.
То есть у вас другой механизм.
Например, попытаться добавить все лат и лонг в массив, а затем после завершения цикла.
Создайте цикл размером этого arrayList и создайте путь. Возможно, вам понадобятся две дополнительные переменные для хранения предыдущего lat и long.