iOS 開発者ガイド for SDK

自転車のルート探索

自転車ルート機能では、自転車専用の速度推定値を使用して、車と歩行者の道路を使用したルート計算が提供されます。 この種類のルーティングはオンラインまたはオフラインで実行でき、高度データはオンラインリクエストで利用できます。

注 :
  • 自転車のルート探索 は現在、ベータ版として提供されています。 API は予告なく変更されることがあります。
  • 自転車専用道路はまだサポートされていません。

自転車のルートには、歩行者専用道路と、走行可能な方向の反対側にある一方通行の道路を横断する必要のある道路セグメントが含まれています。 進行方向で走行するために道路が開かれていない場合、経路制御アルゴリズムはユーザーが自転車を徒歩で移動する必要があると想定し、そのような区間では歩行者の歩行速度を使用します。 この規則の特別な例外として、公園にある歩行者専用道路が自転車用に開放されていることが想定されているため、自転車のフルスピードが使用されています。 一般に、このような徒歩専用のセグメントは、大きなショートカットを提供する場合、または経由地がそのようなセグメントに配置されている場合にのみ自転車ルーティングで使用されます。

自転車ルーティングリクエストを実行しています

次の例に示すように、NMACoreRouterクラスおよびNMATransportModeBikeを使用して自転車ルーティングを実行できます。

// Create an 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:NMATransportModeBike
  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* bikeRoute = [routeResult.routes objectAtIndex:0];
    // ...
    }
    else if (error)
    {
    // Display a message indicating route calculation failure
    }
  }];

ルート高度

オンライン自転車ルーティングセッションで は、 HERE SDK は、特定の道路で使用する速度を決定するときに、標高の変化を考慮します。 上り坂を走行すると、速度が低下し、歩行者の速度まで下がることがあります。 下り坂を走行すると、速度が上がります。

注 : 高度に基づく速度の推定値は、今後変更される可能性があります。

計算されたルートのポイントの高度データを使用して、次のスクリーンショットと同様にルートの高度プロファイルを作成することもできます。

図 1. 上昇のグラフをプロットしました

この高度データを取得するには、 NMARoute オブジェクトの geometryWithElevationData プロパティを使用して、返された各 NMAGeoCoordinates オブジェクト altitude を検査します。 その場所で高度が不明な場合は、 altitude プロパティ NMAGeoCoordinatesUnknownAltitudeValue が返されます。

注 : ルート高度データは、車、歩行者、トラック、自転車のオンライン計算ルートで利用できます。