updateLocation is called whenever the current location changes. It works through the auto callout logic to determine which (if any) callouts need to be made. This is based on the iOS app logic.