Given two locations:
L1 = (latitude1, longitude1, timestamp1), L2
There are some other interpolation strategies that perform better than linear interpolation, includind kinematic interpolation, which takes as input the initial and final speed of anchor points. As an example, see this comparison from a recent paper (Long JA (2015) Kinematic interpolation of movement data. Int J Geogr Inf Sci 8816:1–15. doi: 10.1080/13658816.2015.1081909):
There are R and Python implementations for the Kinematic Interpolation. It should be easy to write a Java version.