Today, nearly every app suggests content or services based on your location. Airbnb offers you a room when you’re on a business trip. The Mall of America helps you find your way around America’s largest shopping mall via the Mall app. But why are location-aware apps on the rise? The reason is that maps and location services enhance interactions between customers and businesses.
According to Mordor Intelligence, the location-based services market was valued at $36.2 billion in 2019 and is expected to reach $126.4 billion by 2025.
Many business owners ask us to integrate features in their apps for real-time GPS route tracking, mapping, navigation, geo-targeting, determining a user’s location, and calculating travel times. These features have already proven handy in ride-hailing, delivery, logistics, and other service industries. Here are just some examples of location-aware apps we’ve worked on:
Brilliant Move, a delivery platform that lets users pay for deliveries and track them on a map in the app
Smart Logistics, an advanced transport management system with a wide range of features including a route optimization algorithm, real-time shipment tracking, and convenient warehouse management
Re-turnz, a reverse logistics solution that lets users return goods bought online in a few clicks and track parcels in real time
In this complete guide, we’d like to share some useful insights from our experience building location-based apps. In particular, we’ll explain how geolocation technology works and what tools you can use to build location-aware apps.
What technologies are used for determining geolocation
The starting point of working on a mobile app with geolocation is identifying where a user currently is so the application can use this data to provide the right services. In other words, it’s about making an app location-aware. This can be done with the help of a number of geolocation technologies.
The Global Positioning System (GPS) determines the geographical position of a user with the help of satellite systems. GPS gives you both accuracy and speed: you can identify a user’s location down to a foot in a few seconds. But there are some drawbacks, such as high battery consumption and low signal when the weather is bad or when the user is inside a tall building.
As an alternative to GPS, Cell Identification (Cell ID) lets you determine a user’s position based on signals from cell towers sent to the device’s GSM/WCDMA/CDMA modem. The good news is that this method works when the GPS signal is lost but the device has access to cell towers. The bad news is that it’s far less accurate than GPS. Actually, the accuracy here mostly depends on how close the device is to a cell tower.
Wi-Fi is another good way to discover where a user is. Here’s how it works for location awareness:
The user's location is determined by mapping nearby Wi-Fi hotspots to a hotspot database.
The user’s geoposition is determined based on the signal strength indication (RSSI), which is pretty similar to the Cell ID method, only Wi-Fi signals are used instead of cell network signals.
With Wi-Fi positioning, you can rely on easily accessible infrastructure for defining a user’s geolocation and don’t have to worry about battery drain as with GPS. But you’ll need quite a number of hotspots to accurately define the user’s position and won’t be able to locate people out of Wi-Fi coverage.
This is an improved way of collecting geolocation data about users by means of satellite signals paired with a Wi-Fi or cellular connection. In other words, Wi-Fi and cellular connections assist GPS in finding where a user is. With this technology, it’s possible to identify a user’s GPS position faster, more accurately, and even in areas where a satellite signal is hard to find, like inside a building.
Moreover, with this method, devices consume less battery. The only disadvantage of this technology is its high cost.
Bluetooth Low Energy (BLE) uses beacons that send signals to users’ devices via Bluetooth. Small BLE devices that work on batteries are easy to install anywhere but are mostly used indoors. The accuracy of geopositioning in this case is really high. But it takes a pretty penny to use beacons and regularly update them.
Similarly to BLE technology, Radio Frequency Identification (RFID) requires a built-in reader and tag. When a user activates a tag with a smartphone, the tag sends position data back to the smartphone. This technology is good for accurate indoor navigation and consumes little battery.
However, few smartphones can read RFID tags. You’ll also have to buy expensive tags and replace the batteries inside them. Both RFID and BLE are mostly used for indoor navigation, speed tracking, and routine task automation, like for checking in at a hotel or turning on the lights automatically when a user gets home.
These technologies help in making apps location-aware. In our work, we rely heavily on a number of third-party services – libraries and location APIs that directly work with GPS, AGPS, Cell ID, and Wi-Fi technologies built into users’ devices for both outdoor and indoor mapping, navigation, real-time geolocation tracking, and estimating speed and time.
What features should you add to your location-aware app?
Based on our experience building geolocation applications, here’s a list of the geolocation features customers most commonly request:
Determining a user’s current position
If you’re planning to add location-based search, content, or services to your app, you definitely need to know the user’s current location. There are many possible uses for this information. GasBuddy uses location data to help you find the nearest and cheapest gas stations. The app determines your current location, then locates gas stations nearby, notifies you about them, shows directions to the gas station you choose, and allows you to pay for gas in the app.
Thinking about an app for travelers or building a car sharing app for your local area? In that case, you’ll definitely need detailed maps in your application. Uber, the taxi service giant, allows you to open a map and see where you are and where you want to go. Another app, Map My Hike, allows users to map all their workouts and build and visualize hiking routes.
You might want to provide users with detailed information about places around them, including addresses, contact information, ratings, and reviews. Let’s look at Foursquare, which allows users to share their opinions on places they’ve visited and displays ratings and reviews to people nearby. Tripadvisor is another great example of an app that gives details of places to visit.
If you’re building an app for drivers, walkers, runners, cyclers, or logisticians, you’ll definitely need built-in navigation with detailed routes, driving tips, voiceovers, offline maps, and so on. This is what we normally call outdoor navigation features.
Audi MMI Connect, an app for Audi drivers to enhance vehicle functionality and navigation, and Transparking, an app that helps truck drivers navigate to parking spaces, restaurants, and gas stations.
But people don’t always need to go somewhere far away to get lost. Big shopping malls and museums can take hours to stroll around. This is why indoor navigation apps have appeared.
You may have already used Google Indoor Maps, which shows you the plan of a building with detailed descriptions, signs, and levels. One more example of an indoor navigation app is Mally, an application that will lead you through all the corridors and levels of a mall. Mally creates 3D maps of shops and gives you a 360-degree view of every shop in the mall, even listing special offers.
Calculating travel times
Someone who’s ordered a taxi in the rain and someone who’s hungry as a wolf and waiting for pizza delivery both need to know how long the wait will be. This is why taxi-hailing and food delivery apps need to provide users with estimated travel times. Curb, an Uber competitor, tells users the estimated arrival time along with the travel time. Seamless, one of the top food delivery solutions in the US, informs customers how long they need to wait for their food.
Real-time location tracking
Aside from taxi-hailing and food delivery apps, real-time geolocation tracking can be important for, say, a family tracking app. One such example is Life 360, which tracks users’ real-time locations and shares them with family and friends.
Logistics products can also benefit from real-time geolocation tracking. For instance, GPS mobile solutions like the Hawk-Eye Trucking Log Book app track GPS locations and automatically handle routine paperwork like bills of lading and invoices. Moreover, Hawk-Eye provides business owners and auditors with access to location data and paperwork.
- Safety features
If you’re building an app for drivers, make sure to add safety features to it. For example, the Waze app doesn’t let you type while you’re driving. It’ll ask you to pull over before you can type in a destination. The Waze app also allows users to turn off all sound notifications, which can be really distracting. Keep in mind that not everyone likes the idea of sharing their location with others or the ability this gives people from your social circle to know where you are if you’re using the map. That’s why the Waze app has an “invisible” mode, which means that friends can’t locate your whereabouts.
From our own experience, we would say it’s a good idea to create a custom solution for real-time location tracking using third-party tools for real-time push notifications and embedded maps.
What tools will help you create a custom geolocation app?
Let’s overview and compare the four most popular solutions for making app location aware.
The first solution that comes to mind when talking about geolocation is Google Maps. This time-tested tool is trusted by tech giants like Redfin, Uber, Grubhub, Lyft, Glovo, and Groupon. We used Google Maps for the World Cleanup and Brilliant Move apps.
In 2018, Google combined its 18 standalone APIs into three products: Maps, Places, and Routes, which made it even simpler to implement location awareness into an app. To work with most of these tools, you first need to get an API key: a unique identifier used to authenticate requests from your app.
With tools from this category, you can add maps based on Google Maps data to your application, customize those maps, and embed a non-interactive Street View panorama or thumbnail.
This product includes:
The Maps SDK for Android, which automatically handles access to Google Maps servers, downloads and displays data, and responds to map gestures. With the Maps SDK, developers can also add a custom graphics to a map (but this tool has a strict list of graphic types that can be added). This SDK has an analog for the iOS platform.
The Street View Static API works similarly to the Maps Static API and allows for embedding static Street View panoramas in a web app.
The Maps URLs tool needs no Google API Key and can generate a cross-platform link to Google Maps and perform searches, get directions, or display map views and panoramic images.
The next product is Routes, which allows users to build the best way from place A to place B and accumulate data about traffic and road accidents. This product consists of three APIs:
The Directions API calculates directions between locations and allows users to build routes for several modes of transportation (car, public transport, walking, cycling).
The Roads API identifies a device’s GPS coordinates, and on the basis of this information builds a best-fit road geometry for the user. Also, it provides useful information about roads (i.e. speed limits).
The Distance Matrix API calculates distance and time between a number of points within Google maps. In most cases, we use this tool to estimate travel times within an app due to its precision.
This product lets developers access Google’s huge database of more than 100 million places all over the world. It includes the following tools:
Geocoding API that converts addresses into location coordinates (and vice versa)
Geolocation API that identifies the user’s location and accuracy radius; this information is received from Cell ID and Wi-Fi nodes that the mobile device can detect
Time Zone API that receives date and location data and sends the name of the time zone, daylight savings offset, and time offset from UTC
Places API that returns information about places using HTTP requests
Places SDK, which is available for both iOS and Android. This tool analyzes a user’s location and sends a list of nearby places with details and photos. There’s also a convenient search for places and place autocomplete. To use the Places SDK, you should ensure that you have enabled the Places API.
To ease developers’ lives, Google offers its API Picker — a table that lists what developers want to do in their app and shows the tool they can use to implement that functionality.
The Google Maps platform supports 40 languages and has great documentation along with step-by-step guides with examples, so it’s quite easy for developers to get started with it. The cherry on top is that Google’s geographical coverage is considered the best.
Until recent times, Google was the indisputable leader among geographical services. Developers could use the Google Maps API for free or cheap. But since July 2018, the company decided to turn their service into a cash cow. Google significantly reduced the number of free API calls and raised prices for API calls.
For instance, previously the limit for free calls was 25,000 per day. Now, the limit is 28,000 per month. This has negatively affected some companies and made app developers search for cheaper alternatives.
Google has a pay-as-you go API business model. Let’s take the Maps product as an example. For a $200 monthly credit, developers get unlimited access to Mobile Native Static maps, Mobile Native Dynamic maps, and Embed maps. This $200 amount also covers a defined number of API calls (i.e. up to 28,000 loads of Dynamic Maps or up to 40,000 Geolocation calls).
After the app exceeds these limits, the service begins charging additional money, and the amount to be paid depends on the monthly volume range. You can find complete information about pricing in Google’s pricing table.
Created in 2010, Mapbox now is one of the most popular Google Maps alternatives. Companies like Instacart, Postmates, Facebook, Shopify, and Strava already use this open-source tool for their projects.
In our previous article, we compared Google Maps and Mapbox, discussed their pros and cons, and overviewed their pricing. We strongly recommend checking out that article if you’re deciding between these solutions.
Mapbox offers developers the following products:
Maps services provide developers with highly customizable and precise maps from 130 multi-validated sources. Developers can generate both static and interactive maps and use Mapbox SDKs that are available for iOS, Android, Unity, and Qt (for building in-vehicle navigation, automation system maps, or location-aware industrial devices).
Navigation services allow users to build the optimal route from location A to location B, taking account of up-to-date traffic and accident data. The tool calculates the travel time for driving, walking, and biking.
Atlas is an offline location platform that allows you to deploy and run Mapbox in a private cloud or on-premises. This tool has all the perks of Mapbox and can be deployed everywhere, globally or locally.
The Geocoding API offers forward and reverse geocoding. For better accuracy and coverage, Mapbox has partnered with Foursquare to integrate Foursquare’s global point of interest (POI) data into the Mapbox app.
Mapbox Studio is a great ecosystem where developers can customize every detail on the map — including the font and width and color of the road network — and even add custom markers.
Vision SDK adds the power of AR and AI to your map. Computer vision algorithms can detect dangerous driving and alert users about it. Thanks to the AR capabilities of Mapbox, you can add advanced lane-level navigation accompanied by audio instructions, overlay POI with tips on parking, etc.
Mapbox Data lets developers add accurate mapping and location data sets to their maps. For instance, the tool offers information about traffic jams, global boundaries, population movements, and terrain.
Mapbox is highly customizable thanks to Mapbox Studio. And the Mapbox Maps SDKs are open source, so every developer can analyze the source code and suggest how to improve the tool. Many talented developers actively contribute to the code base.
Thanks to its use of vector maps, Mapbox supports offline functionality. Applications created with Mapbox mobile SDKs can download maps for selected geographical areas for use when the device doesn’t have network connectivity. In addition, Mapbox mobile SDKs automatically cache tiles and other resources requested during normal use.
Mapbox has weaker coverage compared to Google Maps. Also, some developers complain that Mapbox is too complicated for simple projects.
Mapbox offers more affordable prices compared to Google Maps. For instance, the Maps SDK for mobile is completely free if your app has up to 25,000 monthly users. Map loads are free until 50,000 a month. After that, each 1000 loads will cost you $5. When your app reaches more than 100,000 monthly loads, the price falls to $4.
This page contains the fullest information about Mapbox pricing.
HERE has a long history going back to 1985. The company first was known as NAVTEQ, a geographic information system (GIS) data provider and a major provider of base electronic navigable maps. NAVTEQ was acquired by Nokia in 2007, and in 2011, the company fully merged into Nokia and was called Nokia Location & Commerce integration.
In 2012, the new brand name HERE was introduced. Three years later, Nokia sold HERE to Audi AG, BMW Group and Daimler AG.
The Here SDK has four SDK editions that include different features:
Lite Edition is a lightweight map renderer that has limited mapping, search, traffic, and routing capabilities.
Explore edition is equipped with the HERE Rendering Engine that offers highly customizable 3D maps and a smooth map experience.
Navigate edition also comes with the HERE Rendering Engine but also has convenient functionality for pedestrian and truck navigation.
Premium Edition combines all perks of all other editions for the highest price.
Though the feature set varies across editions, they all have basic mapping functionality (2D and 3D maps, customization of satellite imagery, indoor positioning), routing functionality (traffic-enabled car and truck routing as well as pedestrian routing), and search functionality (geocoding, place and category search).
The Premium edition includes offline mapping and routing, fleet maps, a toll cost calculator, and other useful features. On this page, you can find a comparison of features that makes it easy to choose the best plan for your business needs.
Also, HERE has an AI-powered Live Sense SDK, enabling real-time hazard alerts, changes in road conditions, contextual road guidance, and custom AR capabilities.
HERE’s fleet telematics offers a ready-to-use solution for smart fleet management systems. Also, the offline mode is available with the Premium edition.
The greatest benefit of HERE is its offline support, allowing apps to cache maps in the device’s memory. Thanks to this, users can view maps and build routes even without an internet connection.
This tool has interactive 3D maps for shopping areas and airports for 70 different countries.
Some developers complain about the the large amount of data required for 3D buildings. Sometimes, this functionality isn’t necessary but consumes lots of traffic, which may be annoying. Also, there’s no street view like in Google Maps.
HERE has three basic payment tiers: Freemium, Add-on, and PRO. With this tool, you have 250,000 free calls per month, and an additional 1,000 calls will cost you just $1. On the pricing page, you can learn more about pricing and plans.
TomTom is another worthy tool for making your app location-aware. It’s used by Huawei, Microsoft, Toyota, and Verizon.
TomTom offers Maps SDKs for iOS, Android, and the web. TomTom’s products are categorized by use cases:
Directions. The Routing API builds routes for cars, electric vehicles, and trucks, taking real-time traffic and incident information into consideration. It comes up with several routes, calculating the time and distance for each option. The Long Distance EV Routing service also takes into consideration charging stops that appear automatically based on a vehicle’s energy consumption and charging model.
Places. The Search API adds to your app features like search with autocomplete and an option to restrict the search within a certain area, forward and reverse geocoding, filtering, and categorization of POIs. The Extended Search API also provides information about charging station availability plus POI details and photos.
Traffic. The Traffic API sends real-time traffic and incident data to your web or mobile app.
Tracking. TomTom’s Geofencing API defines virtual geofences around locations and checks whether the assets you’re tracking are inside or outside of those fences. The Location History API saves the movement history of devices you track, while the Notifications API sends alerts when a chosen asset passes through a geofence.
TomTom uses a pay-as-you-go business model. Maps and traffic visualization are completely free using the TomTom SDK for iOS and Android, and TomTom provides 2,500 free transactions per day for all APIs.
After reaching the limit, the price depends on the volume: the more API calls, the lower the price for each 1,000. Also, the price varies if the app is for public or private use. For instance, if you’ve created a public app and have more than 50,000 calls per day, each 1,000 transactions will cost you $0.50. For apps used for internal business purposes only, the price for 1,000 transactions grows to $3.98. Here’s the fullest pricing information.
Other tools worth mentioning
Here are some other solutions you can use for a particular purpose.
To get map functionality in your app, you can use tools from Open Streets Maps (OSM), a free map created by volunteers all over the world. The most popular examples of apps that use OSM data are Instagram, Amazon, and Deutsche Bahn.
How not to fail when creating a location-aware app
The first thing to worry about in a location-aware app is data security. Otherwise, you risk your reputation and money. This is exactly what happened to Uber when they didn’t take all the necessary measures to protect user data.
Read also: Core Elements of Data Security
As a result, rider and driver data of about 57 million people was exposed. But Uber decided to keep this breach a secret and paid $100,000 to the hackers instead of properly informing every user whose data had been compromised. As a result, Uber ended up paying $148 million to cover the consequences of the data breach.
Uber promised to learn from these mistakes, so why don’t we do the same? As you can see, the security of user data is vital for a location-aware app. Make sure that your app is compliant with the highest security standards in the country or countries in which it will operate.
For example, being compliant with the General Data Protection Regulation is crucial for any company that stores and processes data of users in the European Union. For US businesses working with user data, it’s necessary to comply with the Patriot Act, Safe Harbor Act, and Privacy Act, along with the Privacy Shield security standards. Most probably, you’ll need to consult a lawyer and hire data security professionals to make sure you protect the user data in your location-aware app.
Hopefully our advice can help you with choosing an idea for a custom geolocation app and starting location-based app development. If you need help from experienced app developers, we’d be glad to walk you from concept to fully operating product by providing our outsourcing development services.