Route Serialization
Route serialization is a feature that allows users to apply the Route
methods to serialize a route into binary data which can then be saved as a file. You can also use Route
class to generate a route from a previously serialized route without going through the route calculation process. This is useful when a user wants to recover from a crash during navigation or when a user wants to transfer a route from another device.
Route serialization currently only supports car, bike, truck, and pedestrian routes. Public Transit routes cannot be serialized. Route serialization also does not work when the map version from which a route is serialized does not match the current map version. Route serialization also fails if the binary data containing the serialized route is tampered with or corrupted. In these cases a specific SerializerError
error code is returned.
Both asynchronous and synchronous operations are supported. To asynchronously serialize a route, perform the following:
Route route;
// assume that route calculation was already performed
Route.SerializtionCallback sCallback = new SerializationCallback() {
@Override
public void onSerializationComplete(Route.SerializationResult result) {
// do something with data
byte[] data = result.data;
}
};
Route.serializeAsync(route, sCallback);
To asynchronously deserialize a route:
byte[] data;
// assume 'data' is a previously serialized route
Route.DeserializationCallback dCallback = new DeserializationCallback() {
@Override
public void onDeserializationComplete(Route.Deserialization result){
// do something with the route
Route route = result.route;
}
};
Route.deserializeAsync(data, dCallback);