Also, I implemented some code to not update the location with a less accurate position, it considers the uncertainty of the new and of the previous positions.
As a daemon, it is working really very well now, tough bigger update intervals are still missing.
About using cell tower, here where I am it's not possible to get a position with a better accuracy than 800 meters, and that's a lot.