スクータールート探索
スクータールートでは、スクーター固有の速度評価を使用して、車の道路を使用したルート計算が提供されます。 このタイプのルーティングは、オンラインまたはオフラインで実行できます。
- インド
- インドネシア
- シンガポール
- 台湾
- タイ
- ベトナム
オフラインスクータールーティングを実行するに NMAMapDataGroupScooterAttributes
は、以下の例のように、オプションのデータグループをダウンロードまたはプリフェッチする必要があります。 データグループの詳細 については、「マップパッケージのダウンロード」を参照してください。
// Select additional data group needed for offline scooter routing
[[NMAMapLoader sharedMapLoader] selectDataGroup:NMAMapDataGroupScooterAttributes];
// Whether download map package(s)
[[NMAMapLoader sharedMapLoader] installMapPackages:@[package]];
// Or prefetch
[[NMAMapDataPrefetcher sharedMapDataPrefetcher] fetchMapDataForBoundingBox:boudingBox error:nil];

スクーターのルートには車専用道路が含まれています。 スクーターは高速道路では許可されていないため、このタイプのルート計算では高速道路は使用されません。 禁止されている場合、車両固有の道路や高速道路を回避できないと、スクーターの経路計算が失敗します。
この機能は、スクーターの速度制限をサポートしています。これは 45 km/時 です。 計算されたルートでは、スクーターの走行速度が車の走行速度よりも遅いという事実が考慮されます。たとえば、車の走行速度が 45 km/時 を超える道路などです。 また、交通量が多いため、スクーターでの移動時間は車での移動時間よりも短くなります。
スクータールートを計算するには、次の例のように、他の輸送モードタイプと同様の手順を使用します。
// Create a NMACoreRouter
NMACoreRouter* coreRouter = [[NMACoreRouter alloc] init];
NMAGeoCoordinates* geoCoord1 =
[[NMAGeoCoordinates alloc] initWithLatitude:49.276271 longitude:-123.113224];
NMAGeoCoordinates* geoCoord2 =
[[NMAGeoCoordinates alloc] initWithLatitude:49.1947289 longitude:-123.1762924];
NMAWaypoint* waypoint1 = [[NMAWaypoint alloc] initWithGeoCoordinates:geoCoord1];
NMAWaypoint* waypoint2 = [[NMAWaypoint alloc] initWithGeoCoordinates:geoCoord2];
NSMutableArray* stops = [[NSMutableArray alloc] initWithCapacity:4];
[stops addObject:waypoint1];
[stops addObject:waypoint2];
NMARoutingMode* routingMode = [[NMARoutingMode alloc]
initWithRoutingType:NMARoutingTypeFastest
transportMode:NMATransportModeScooter
routingOptions:0];
[coreRouter calculateRouteWithStops:stops routingMode:routingMode
completionBlock:^(NMARouteResult *routeResult, NMARoutingError error) {
// If the route was calculated successfully
if (!error && routeResult && routeResult.routes.count > 0) {
NMARoute* scooterRoute = [routeResult.routes objectAtIndex:0];
// ...
} else if (error) {
// Display a message indicating route calculation failure
}
}];