A method performed at least in part on at least one processor of a global positioning system (GPS)-capable device, the method comprising, receiving, at a GPS-capable device, satellite visibility-related data communicated from a cloud service , wherein the satellite visibility-related data comprises: a first set of satellites corresponding to satellites which are predicted to have GPS signals detected by the device assuming there are no obstructions; a second set of satellites corresponding to satellites which are predicted to have GPS line-of-sight signals visible to the device in the presence of obstructions, in which the second set is a subset of the first set of satellites; and a third set of satellites corresponding to satellites which are predicted to have GPS signals detected by the device as a result of reflection wherein the third set of satellites comprises satellites whose GPS signals are available to the device but which should not be available based on line-of-sight; determining a fourth set of satellites that are predicted to have GPS signals detected by the device in the absence of obstructions, in which the fourth set corresponds to the satellites that cannot have line-of-sight visibility or reflected visibility to the device; searching for GPS signals from satellites to obtain a captured set of satellites; aborting the search to obtain GPS signals from satellites when the captured set of satellites matches the first set of satellites with the fourth set of satellites removed therefrom; receiving, at the device GPS signals from the captured set of satellites; and using the satellite visibility-related data to determine a location by determining satellite signals from the second set of satellites are more trustworthy and using a weighting function with weights biased towards satellites in the second set of satellites when using GPS signals to determine the location of the device. a first set of satellites corresponding to satellites which are predicted to have GPS signals detected by the device assuming there are no obstructions; a second set of satellites corresponding to satellites which are predicted to have GPS line-of-sight signals visible to the device in the presence of obstructions, in which the second set is a subset of the first set of satellites; and a third set of satellites corresponding to satellites which are predicted to have GPS signals detected by the device as a result of reflection wherein the third set of satellites comprises satellites whose GPS signals are available to the device but which should not be available based on line-of-sight; determining a fourth set of satellites that are predicted to have GPS signals detected by the device in the absence of obstructions, in which the fourth set corresponds to the satellites that cannot have line-of-sight visibility or reflected visibility to the device; searching for GPS signals from satellites to obtain a captured set of satellites; aborting the search to obtain GPS signals from satellites when the captured set of satellites matches the first set of satellites with the fourth set of satellites removed therefrom; receiving, at the device GPS signals from the captured set of satellites; and using the satellite visibility-related data to determine a location by determining satellite signals from the second set of satellites are more trustworthy and using a weighting function with weights biased towards satellites in the second set of satellites when using GPS signals to determine the location of the device. <EOS>