MapMatching at GebetaMaps

Gebeta Maps
4 min readJul 23, 2023

--

Mapmatching is a process of aligning a sequence of observed locations with the most likely path on a road network. The image below shows the mapmatching result of raw GPS data to snapped points on the road. It is a useful technique for enhancing the accuracy and reliability of GPS data, especially in urban areas where signal interference and multipath effects are common. At GebetaMaps, we are proud to announce the launch of our new mapmatching service, which offers a fast and robust solution for various applications in the logistics sector.

In this blog post, we will explain the motivation behind developing our own mapmatching service and how it can benefit companies that need to track and optimize their fleet operations.

One of the main challenges we face in our project is to determine the state of road networks, which means assessing how crowded or free they are at different times of the day. For example, we know that the road from Bole to Megenegana near Imperial Building is usually crowded in the morning and becomes free after 11 am. This is a useful insight for us, because it suggests that road networks have some common patterns that we can learn from. Our idea is to collect GPS data from vehicles and use machine learning models to predict the state of road networks based on historical data.

So we started collecting GPS coordinates as part of our project, but we soon realized that we had a problem with the reliability of the data. The GPS points were often inaccurate and did not reflect the actual location of the road. Instead, they jumped to nearby buildings or other places that were not relevant to our analysis. This made it very hard for us to match the GPS points to the correct road segments, which was essential for our project. We initially tried to do this task manually, by looking at the map and correcting the errors, but it was too time-consuming and tedious. We wasted a lot of time and energy on this process. So we started to look for more efficient and automated way to solve this problem. That’s why we decided to create our own mapmatching algorithm, which could automatically assign the GPS points to the right road segments based on some criteria.

How can Logistic Companies use MapMatching?

Mapmatching is a useful technique for ride hailing companies to estimate the cost of a trip. Because mapmatching involves aligning the GPS coordinates of the vehicle to the actual road segments it has traversed. This way, the companies can account for the deviations from the suggested route that the drivers may take, based on the passengers’ preferences or their own knowledge of the traffic conditions. Mapmatching can help improve the accuracy and fairness of the pricing system for ride hailing services.

Other way Mapmatching can be used is to identify where drivers are in the road and when they are available for a ride request. Mapmatching can also help match a user with the real near driver rather than just using a radius from the customer to nearest drivers. This is because mapmatching takes into account the actual road distance and travel time between the user and the driver, as well as the traffic conditions and road restrictions. By using mapmatching, a ride-hailing service can provide more accurate and efficient service to both users and drivers.

How to Integrate GebetaMap’s MapMatching?

GebetaMaps is a mapping service that provides accurate and reliable maps for various purposes. One of the features we offer is mapmatching, which allows you to align GPS traces with our map data and get the most likely route that was taken. To integrate GebetaMaps mapmatching into your project, you need to follow these steps:

  • Sign up for a GebetaMaps account and get an API key.
  • Use the GebetaMaps mapmatching API to send your GPS traces and get the matched route as a response.
  • Display the matched route on a GebetaMaps map view or use it for further processing.

This is simple code to use mapmatching

const coordinates = [[8.99655,38.75753],[8.99641,38.75742],[8.99627,38.75738],[8.99608,38.75731],[8.99593,38.75713],[8.99590,38.75691],[8.99589,38.75681],[8.99583,38.75665],[8.99578,38.75647],[8.99575,38.75628],[8.99579,38.75616],[8.99588,38.75613],[8.99606,38.75613],[8.99617,38.75609],[8.99643,38.75607],[8.99672,38.75607],[8.99684,38.75581],[8.99679,38.75575],[8.99673,38.75557]]
const apiKey = ""
const baseUrl = "https://mapapi.gebeta.app/api/route/mapmatching?mode=driving"

const url = baseUrl + "&coordinates=" + coordinates + "&apiKey=" + apiKey
const response = await fetch(url);
const json = await response.json();

For more details and examples, please refer to our documentation and tutorials. We hope you enjoy using GebetaMaps mapmatching and find it useful for your needs.

Summary

Mapmatching is the process of aligning a sequence of observed user positions, such as GPS coordinates, with the road network on a digital map. It is useful for many applications, such as navigation, traffic analysis, and route planning. Mapmatching can be done in real-time or offline, depending on the performance and accuracy requirements. Mapmatching algorithms can use different approaches, such as geometric similarity, hidden Markov models, or machine learning, to find the best match between the user’s location and the map’s edges.

We at GebetaMaps provide mapmatching solution. You can test our MapMatching solution by signing up at https://maps.gebeta.app.

--

--

No responses yet