Приборы, которые стоят на автобусах, передают информацию о местоположении каждые 30 сек. Данные сохраняются в БД. Сам сервис обращается к БД каждые 10 секунд на проверку новых данных.
Итого максимальная задержка может составлять до 40 сек.
Если делать плавное движение автобусов, то есть два пути:
1. Экстраполяция. Но такой метод не всегда достоверный. Бывает что автобус передал местоположение и скорость перед перекрестком и после этого остановился на нем. Если программа будет показывать что он движется дальше - это неправильно, недостоверно.
2. Задержка. Брать местоположение не последней пришедшей записи с прибора, а предпоследней, и показывать с преднамеренным опозданием в 30 сек. движение от предпоследней до последней точки. Получится плавно, но максимальная задержка будет уже свыше 1 минуты. Тоже не выход.