SDK for Android Developer's Guide

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.

Note: Route serialization is currently offered as a beta feature. APIs may change without notice.

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);