Clean up gps, communicate better

The issue is: http://stackoverflow.com/questions/16837287/angular-js-scope-variable-is-updating-but-view-is-not

The callback was called outside of the scope, so needed to add $scope.$apply();