O algortimo StayPointDetection armazena apenas o último ponto como ponto de parada. O mesmo deveria armazenar todos os pontos (partindo de i até j) ou apenas o centroid.
Eu sugiro armazenar todos os pontos e inserir um getCentroid na classe StayPoint. Assim teríamos ambos;