How do Location Services Work in IoT Devices?

Written by Markus Pihl

By Markus Pihl, IoT Connectivity Specialist @ Soracom

Published: December 21st, 2021

Location services and positioning technologies are much like any other application in IoT – there are many tradeoffs to consider, and the best solution depends largely on the use case.

Taking the considerable depth of location services in cellular technology into account, this blog will give a small overview of the history and future possibilities of positioning retrieval technologies in an IoT setting. 

First Thoughts on Location Services

The first question to ask might be: Where exactly will you be using the location data of your IoT device? On the device itself? Somewhere in the cloud or on a server? Maybe both?

As there are many different positioning methods available, this will be a key differentiator right at the top. A mobile phone, for example, will typically require position tracking on the device itself so that a map application can show the user their current location. However, for many IoT use cases, positioning data is often reported to a central server or database and not used by the device itself.

Additionally, different positioning technologies – like CellID, GPS, and OTDOA (all explained in detail below) – each have different strengths and weaknesses in coverage, outdoor/indoor useability, accuracy, power consumption, cost, and other factors. Each of these technologies can be broadly categorized into one of three categories: satellite-based positioning, location-services positioning, and network calculated positioning. In some cases like mobile phones, multiple technologies are used in combination with each other.

Satellite-based Positioning

Let’s assume you’re using an IoT device intended to deliver an accurate outdoor position to an attached application. Satellite positioning data – whether that be GPS, Galileo, Glonass, or Beidou – may seem like the simplest solution. The combination of some of them or even all 4 is known as Global Navigation Satellite System (GNSS) and can help make locations appear faster and more precise.

The resulting  NMEA data sets (National Marine Electronics Association) therefore include not only GPS data, they might also include data from Galileo, Glonass, and BaiDou satellites. The general idea behind the redundancy is that the more data (or satellites) available, the more accurate the positioning, or fix, and the shorter time to first fix (TTFF). Yet even with the plethora of available line-of-sight satellites, the process can take several minutes.

How Cellular Connectivity Can Help Improve TTFF

When a device is using pure GPS data, each satellite is actually transmitting data about its position back to earth. Since satellite communication is slow and satellites are not in a good line of sight, this can cause TTFF to take a long time. To speed up this TTFF, developers introduced the Assisted GPS (A-GPS), which uses a network data connection to download the satellites’ positions ahead of time so that the device does not have to gather it directly from the satellites in view. This data set is known as the Xtra file and is only valid for a limited time (between 1-7days).

The file size, download frequency, and download costs for those downloads might be a show killer for some IoT applications, but the battery power savings, as the TTFF is much smaller than with an unassisted GNSS, might be the benefit. This will also push the IoT device from a purely device-only positioning (where a device does not need to rely on any other service to determine its own position) to an assisted positioning method.

Going Beyond Satellite: Geolocation Services

Following the online approach, if a device has a network data connection in order to access an Xtra file, it can also use a wide number of positioning assistance services via the internet like the well known Google geolocation API as well as the data collected by Opencellid accessible via Unwired Lab API. A pure web gui based solution would be e.g. Cellmapper. Of these services, the power consuming GNSS might seem extraneous, but can be used to amplify positioning to attain more outdoor accuracy. 

Geolocation services take advantage of the fact that, when a device is connected to a data network, that connection typically corresponds to a geographic location. For example, cellular networks (such as 2G, 3G, 4G/LTE, 5G, and NB-IoT) provide cellular network coverage through the use of thousands of towers or “Cells”, each of which have a unique “Cell ID.” Since these towers don’t move, you can get a rough idea of where a device is located geographically based on which Cell ID it is connected to. At Soracom this information is e.g. available in the user console or via the API.

The same technique also applies to well-known WiFi hotspots or even Bluetooth waypoints or device signals that are within reach of the device. Compared to Cell ID positioning, utilizing WiFi and/or BT may even result in the most accurate location, since the range of these networks is typically much smaller than a cellular network tower.

Services like Google’s Geolocation API, Mozilla’s Location Services, and Opencellid often provide an API that makes the usage easy. And the more data provided to such services, the more accurate the final positioning will be. Of course, the biggest advantage with geolocation services is that positioning data can even be acquired indoors where GPS satellites cannot be detected.

Cellular chip and module vendors in parallel offer location services that do not depend on cellular network location services implemented by the mobile network operators (MNOs). These services are integrated in the cellular chipset and use a similar database, but are able to reduce the amount of data sent for location retrieval by simply compressing it. These are offered e.g. from Skyhook or PoLTE.

New Features in Cellular Network Location Services

Many MNOs have implemented their own standardized location services, as they have access to the base stations and their measurements are using one of the available location positioning protocols.

New features in the cellular networks can improve the accuracy of location services. But the implementation of these features depends heavily on the cellular network providers (MNOs) and can vary from country to country and are therefore not reliable.

GSM (2G) already boasted the possibility to locate a device with the use of the CellID, which is stored in the home location register (HLR). The position accuracy is directly linked to the cell size, which can reach up to several kilometers/miles depending on the used frequency. 

In the example figure below, the red cell has a larger size as it operates at a lower frequency than the blue cell. Locating a device within that red cell would therefore be not as accurate as in the blue cell. With the increased number of cells within cities and the cell size reduction in higher frequencies, the accuracy of this method is getting better and better.

Applying specific methods within the base stations, like evaluation of the timing advance (TA) value and the round trip time (RTT), it is possible to get the distance of the device to the antenna of the base station. Using a single base station will only result in a circle around the known location of the antenna. By utilizing multiple points through mathematical routines like triangulation (which combines 3 cells with the previously stated parameters), you can achieve a more accurate location. Such calculation could be done on the device itself with the assistance of the location service server within the cellular network.   


Enhanced Cell-ID (E-CID) and Observed Time Difference of Arrival (OTDOA) positioning methods defined in 3GPP standards will offer possibilities even for low power devices (LPWAN) that will combine inherent data with the data of the cellular network.

For E-CID, positioning is based on device Reference Signal Received Power & Quality (RSRP/RSRQ) measurements and receive/transmit time difference measurements of the base station along with its cell identity (CID). The distance to the different base stations allows the possibility for location calculation on the location service server.

For OTDOA, the existing LTE positioning reference signal (PRS) is used and will be integrated in LPWAN technologies in the near future. The device measures the time difference between PRS signals transmitted from several synchronized eNodeBs and reports the result to the positioning server, which uses this information to pinpoint the location.

With the latest cellular antennas, or antenna arrays, the so called Angle-of-Arrival (AoA) from at least 2-3 base stations allows for even more precision by analyzing the uplink transmission signal (phase shifting) within the antenna array. The larger that array, the better the accuracy.
This would be possible as a pure network-based positioning service without the need of device assistance.

GNSSA-GPSWeb based Location ServiceCell-ID
(single cell)
(multi cell)
Accuracy10-50m10-50m1-50m> 150m50-200m
Time to get location2-12 min (coldstart)> 10s< 2s< 2s< 2s
Data need~60kb
few kb /
few kb /
ProviderDeviceDevice/cell. HWWebDevice or
Device and/or MNO
AvailabilityworldwideWorldwide with suitable HWworldwide, except few countriesworldwide,
but depends on available data 
depends on availability at different MNOs
*Costs are an estimation and include e.g. the additional or more expensive HW and/or service charges

As you can see, there is no ‘one’ method for location services in IoT, as use cases and the influencing parameters vary too much. That being said, pooling any and all available data and delivering a position in latitude, longitude, height, speed, direction and accuracy – even just a street name – is being integrated into cellular modules with the use of powerful datalakes in the cloud, and the ability to get them with a command or api call.


Do you have questions about an IoT project? Speak with one of our experts today to learn how Soracom has helped more than 20,000 innovators deploy, scale, and secure their IoT projects.

More great resources for IoT devs