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 may be licensed on the Marketplace.
Although you might have many measurements from different cars, your sensor data may lack context. For example, you do not know on what type 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 efficiently, without having to develop algorithms from scratch. The following image shows the result of such map matching.
Now that you know on which road - or "segment", in the 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 dataset on the Marketplace about current road surface conditions that you can query using the segment ID.
Combining the knowledge of the newly observed construction work, the historical speed, and how slippery is the road surface, 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 gives you a full map of recommended speeds to 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 use the Location Library for map matching to help you understand whether observations provided by two different vehicles which are close to each other, refer to the same road.
For instance, one vehicle might be under the bridge while the other vehicle is on the bridge above. You can use this information to validate warnings or extend them in time to show whether the "critical situation" persists.
The Workspace stream processing environment can be used to operate this data product continuously in a product grade. Also, you may 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. These changes are local 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 snapshots of the world and handling local differences. Each update of a map is a new version of the layer. The layer consists of partitions with each new version only storing the partitions which have changed. Such an approach stores 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.
At times, 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 to process 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 transformation application automatically in a Workspace batch pipeline, whenever there is an update to the source data. This assures that 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 which changed between versions (marked with a crosshatch).