Our platform uses the native operating system functionality to acquire GPS coordinates in the most accurate way possible.
We also leverage the accelerometer and other device features to provide heading (direction user is facing) and other additional values besides the latitude and longitude coordinates.
The time it takes a device to capture GPS is dependent on many factors, but below are the key aspects to consider:
Desired Accuracy & Fast Acquisition
As a general rule, when desired accuracy is 50 metres or more, then its possible for the device to use mobile network towers to triangulate position.
This is a much faster way compared to GPS, and also avoids line of sight and GPS chip quality issues mentioned below.
For accuracies of 25 metres or less, the device will normally need a GPS lock to meet the required accuracy because mobile network triangulation will not be accurate enough. GPS acquisition is normally slower, and is influenced heavily by the other factors outlined below.
So when you configure a GPS setting - e.g. a Location field in a Form design - be sure to consider what is the minimum accuracy you can accept.
This decision will directly affect how long your users need to wait for the device to acquire location coordinates.
If you only require GPS coordinates and nothing else (i.e. no heading or other location metadata), then try using the Fast Acquisition option found on the Location field type in Form screens. This option speeds up coordinate acquisition substantially while sacrificing a small amount accuracy, since the device will not wait as long to confirm a GPS lock before reporting the user's position.
Sky Line of Sight and Conditions
The fastest way to get an accurate GPS lock is to be out in the open, with nothing to obscure the device's line of sight to the orbiting GPS satellites.
So being out in the countryside is normally more GPS capture friendly than being in a city with tall buildings all around (or even worse is being indoors).
Weather can also play a role in affecting the speed with which your device gains an accurate GPS lock - cloudy days will affect performance compared to sunny ones.
Quality of Your Device's GPS Chip
This is generally not a problem for higher end, flagship devices, however in low- and mid-range devices, it is very common for manufacturers to use poor quality or limited capability GPS chips to save money.
As a rule of thumb, devices costing less than USD 250 generally have slow processors, poor quality GPS chips (if any) and limited amounts of memory.
Aside from the poor GPS chip, the slower processor and memory also slows the device's capability to process the incoming GPS data.
If you are finding that some devices are slow in getting a GPS tag compared to others, this is likely because the device itself is struggling to get a GPS lock.
Generally speaking, if requested accuracy is 10 metres or less, then devices with poor GPS chips will take a while to achieve this.
You can see this kind of hardware limitation if you simply open up the Google Maps app on your device and center on your current location.
If you stand still and leave the maps app open for a minute, during that time you should see the current location beacon moves around and the accuracy radius/halo around it is widening and narrowing the whole time. That movement and accuracy variation is exactly the kind of data that we receive from the device, and hence we have to contend with that in getting a decent accuracy lock.
Device Support for GLONASS
One other thing we have come across in terms of helping get GPS locks faster is that devices with GLONASS support tend to lock quicker.
GLONASS is a Russian alternative satellite system that can be used by devices in concert with the standard US GPS system.
Having access to essentially double the number of satellites increases the chances of a speedy co-ordinate result.
You can check whether your device supports GLONASS on mobile device comparison websites.
As an example, see how the Samsung Galaxy S6 has GLONASS while two similarly priced, ruggedized phone options do not: