I love my map app! I use it so often that I take it for granted. By simply typing an address or business name into the search bar, it tells me where the address or business is located, how to get there, and how long it will take to get there. But have you ever thought about the data that powers your map app, and how the app works? It is fascinating that something so complex is so easy to use and has become part of our daily lives.
The underlying map data itself is amazing when you think about it. First, the map data must contain a spatially accurate digital representation of all streets that exist in the real world. This is required for the app to be able to calculate a route to any location along the street network. And there are a bunch of attributes that must also be captured and linked to each street – things like street names, addresses, the permitted directions of travel along the roadway, travel speeds, and any type of travel restriction, such as "no left turn permitted" at a given street intersection. It is really hard to build the map data and get everything right. And in the real world, things are constantly changing – new roads are built all the time, intersections and interchanges are remodeled, streets are renamed, and new traffic restrictions are implemented – so to keep the map data up to date, you must have methods that allow you to quickly detect, capture, and deliver these real-world changes.
There are other types of data sets that are used in conjunction with the street data in your map app. One example is Points of Interest (POI) data, which is essentially a listing of all businesses, their locations, and other attributes such as business names, phone numbers, and hours of operation. Another example is boundary data – polygons that outline areas of interest such as administrative areas (zip codes, municipalities, counties, states, etc), neighborhoods, parks, and shopping centers. These boundaries often provide additional context to a given location. Some map apps also incorporate real-time or near-real-time data such as traffic, weather, parking, and fuel prices. All of these additional data sets must be spatially aligned with and linked to the underlying street data to work together properly in your map app.
The other piece of data that is needed for your map app to work is your real-time location. This is typically obtained from the Global Positioning System (GPS) chip embedded in your mobile device, which uses signals received from a network of satellites to calculate your location (latitude and longitude on the surface of the earth) every second.
So how does your map app work? At a high level - when you use your map app, it takes your real-time location and matches it to the nearest point along the street network. When you type an address or a business name into the search bar, the business or address is algorithmically matched to the appropriate location on the street network. Then other algorithms, using the underlying map data, calculate all of the potential travel paths to get from your current location to your desired destination. Keep in mind the best path is not always the shortest distance; the algorithms take into consideration things like permitted and historic travel speeds, traffic restrictions, the direction of permitted travel along each street segment, and the live traffic situation to find the best route and to calculate the estimated time it will take to travel that route. And it does all of these calculations faster than you can blink your eyes, which is pretty remarkable!
At a high level, this is how it works. In reality - it is more complicated than this – where the data are stored and how the information is delivered to and displayed on your app are topics I will discuss in subsequent posts. But next time you use your map app, if something is not exactly right – whether the location of your destination is slightly off, or it took you a few minutes longer than predicted to reach your destination- I hope you have 'mapifiny' (a map epiphany) and realize how amazing both the data and technology that make this type of application work really are.