OPINION: Accessing GPS using Location Service vs Direct Connection

2 Sep 2020

Location services are provided in newer operating systems (OS) to allow software and even web developers an easy method to determine the physical location of your computer device (most often a smartphone or tablet). Usually you must allow or grant permission to each specific app or web service to be given access to your location.

For Geode (or other GNSS/GPS) software developers, for positional accuracy we believe it is instead best to have a direct connection to the Geode from within your app. This is true in Windows, Android, and iOS. Using location services with the Geode in any operating system can sometimes make your position fall back to poorer accuracy. Location services can fall back to integrated GPS, accelerometer / gyroscope / magnetometer, Wifi, cellular, or other alternative positioning method if you ever lose connection to the Geode or are in conditions that do not allow the Geode to give you an accurate position. Location services may also apply position “smoothing” or “drift correction” as well as a “Static Hold” to make your position appear to be more accurate than it actually is (some GNSS/GPS receivers themselves may also apply such). This may occur with no warning and no other indication for when this has already occurred. Also, the method used by location services to show accuracy may not be able to reflect GPS/GNSS positioning of less than a meter. So unless the user is trying to use an NTRIP client (such as our latest Geode Connect) to feed differentially corrected data into your app, then it is often better to have a direct connection to the receiver.

Just on a related side note, it is recommended to train users on how to maintain the best positional accuracy with the Geode, like we provide at the following web links.

https://youtu.be/r6TuuhHY5XM

https://www.junipersys.com/support/article/14714

https://www.junipersys.com/support/article/6614

For Windows, a direct connection is established using a COM Port (most often a virtual COM port number assigned to the Bluetooth connection created by our Geode Connect utility). Programming for a GPS COM port is detailed starting at the following web page.

https://www.junipersys.com/support/article/13111

For Android, we provide sample code for direct connect at this web page.

https://www.junipersys.com/support/article/14672

For iOS, we can add your app to our Apple MFI Product Plan for the Geode and then you can use an EASession for direct connect as described at this web page.

https://www.junipersys.com/support/article/14709