Ваш код для обновления маркера меняет значение lat / lng при каждом вызове. Таким образом, каждый раз, когда позиция обновляется до чего-то, что находится за пределами вашей карты. Попробуйте это (или измените, чтобы увеличить lng вместо lat, если это то, что нужно)
var markerPos = marker.getLatLng();
marker.setLatLng([markerPos.lat + 0.001, markerPos.lng]);