Imagine you have sensor data from vehicles that have detected construction work along with a GPS trace. Using this data, you might want to create a map with recommended speeds by using context information from the HERE Map Content and additional data that you might have licensed on the Marketplace.
Let’s start out with your own data – the sensor data. These measurements, although you might have many of them from different cars, lack context. You do not know on what kind of road the observation was made, nor do you know the speed limit set for that road. You only have a "trace in the dark" that you can see in the image below.
To make the raw GPS data and construction site observation useful, you need to match the data to a map to reveal the context of the road. You can use the Location Library to perform such map matching in a fast and efficient way without having to develop such algorithms from scratch. The following image shows the result of such map matching.
Now that you know on which road - or "segment", in HERE terminology - the observation was made, you can access additional data via the segment ID. For instance, from the HERE Map Content you can find the average historical speed on this segment. Or, you may find a data set on the Marketplace about current road surface conditions that you can query by the segment ID as well.
Combining the knowledge about the newly observed construction work, the historical speed, and the level of road slipperiness, you can deduce the recommended speed within your business logic. You can run this business logic in a HERE pipeline that regularly or continuously updates your production grade data product leveraging the Flink or Spark environment.
The figure below illustrates the result of your business logic for one vehicle trace. Combining the data from many vehicles will give you a full map of recommended speeds that you can offer on the Marketplace.
Another illustrative use case is deriving time-critical data products, such as warnings, from sensor data.
In this case, you can also use the Location Library for map matching. Particularly, it can help you understand whether two observations provided by different vehicles that are close to each other refer to the same road or not. For instance, one vehicle might be under the bridge and the other one on the bridge above it. You can use such information to validate warnings or extend them in time to show whether the "critical situation" persists.
You can use the Workspace stream processing environment to operate this data product continuously in product grade. Further, you might want to use the Marketplace to monetize your data product.
The figure below illustrates slippery road warnings on a map.
A map is a representation of the physical world at an instance in time. As the world changes, the map needs to be updated. By their nature, these changes are local ones rather than global - a new street or road sign added, a new building erected, and so on.
With versioned layers, the HERE Workspace offers a data storage type intended for capturing such snapshots of the world and handling local differences. Each update of a map is a new version of the layer. A layer consists of partitions with each new version only storing the partitions that have changed. Such an approach allows storing large data sets efficiently with only small data amounts changing with every new snapshot.
One of the main data sets in the Workspace is the HERE Map Content. It is stored in a set of versioned layers for different types of content, such as roads or buildings.
Sometimes, you may need the HERE Map Content data in another format that supports your client's capabilities. In this case, you can use the Data Processing Library to create a transformation application that processes the HERE Map Content data incrementally. As a result, every update of the source triggers an update of the modified partitions in the derived map.
You can then run this application in a Workspace batch pipeline, and set it up to run automatically whenever there is an update to the source data. This way you can make sure your map is always up to date.
HERE uses the Data Processing Library to build the Optimized Maps for Location Library, Optimized Map for Visualization and many more.
The figure below illustrates an example of partitions that changed between versions (marked with a crosshatch).