ルートのシリアル化
ルートのシリアル化は、ユーザーが NMARoute
メソッドを使用してにルートをシリアル化できるようにする機能 NSData
です。ルートのシリアル化は、ファイルとして保存できます。 を使用 NMARoute
して、ルート計算プロセスを経由せずに、以前にシリアル化されたルートからルートを生成することもできます。 これは、ユーザーがナビゲーション中にクラッシュから復旧する場合、またはユーザーが別のデバイスからルートを転送する場合に役立ちます。
現在、ルートのシリアライゼーションは、車、自転車、トラック、および歩行者ルートのみをサポートしています。 公共交通機関はシリアル化できません。 ルートがシリアライズされているマップのバージョンが現在のマップのバージョンと一致しない場合も、ルートのシリアライゼーションは動作しません。 また、シリアル化されたルートを含むバイナリデータが改ざんされたり、破損したりした場合にも、ルートのシリアル化が失敗します。 このような場合は、特定 NMARouteSerializationError
のエラーコードが返されます。
非同期操作と同期操作の両方がサポートされています。 ルートを非同期にシリアル化するには、次の手順を実行します。
NMARoute* route;
// assume that route calculation was already performed
// asynchronous serialization
[NMARoute serializedRouteWithCompletionBlock^(NSData *data, NSError *error) {
// do something with the data
}];
ルートを非同期的にデシリアライズするには、次の手順
NSData* data;
// assume 'data' is pointing to a previously serialized route
[NMARoute routeFromSerializedRoute:data withCompletion:^(NMARoute *restoredRoute, NSError *error) {
// do something with the restored route
}];