iOS 開発者ガイド for SDK

ポイント間の距離の計算

2 点間の絶対距離を計算しています

次の例では、 Haversine の式を使用して、道路の種類や類似した道路を無視して、 2 つのポイント間の絶対距離を計算する方法を説明します。

NMAGeoCoordinates *start = [[NMAGeoCoordinates alloc] initWithLatitude:49.839740
                               longitude:24.029272];
NMAGeoCoordinates *end = [[NMAGeoCoordinates alloc] initWithLatitude:49.843667
                               longitude:24.026510];
// distance in meters
double distance = [start distanceTo:end];

ルートに沿った距離を計算しています

次の例では、ルートに沿った距離を計算する方法を説明します。 特定のルートオプションを使用して、必要なルートを取得します。

// setup waypoints
NMAGeoCoordinates *start = [[NMAGeoCoordinates alloc] initWithLatitude:49.839882
                               longitude:24.029239];
NMAGeoCoordinates *end = [[NMAGeoCoordinates alloc] initWithLatitude:49.849897
                              longitude:24.022307];
NMAWaypoint *startWaypoint = [[NMAWaypoint alloc] initWithGeoCoordinates:start];
NMAWaypoint *endWaypoint = [[NMAWaypoint alloc] initWithGeoCoordinates:end];

// setup mode
NMARoutingMode *mode = [[NMARoutingMode alloc] initWithRoutingType:NMARoutingTypeFastest
                           transportMode:NMATransportModeCar
                          routingOptions:0];
// calculate a route
_router = [[NMACoreRouter alloc] init];
[_router calculateRouteWithStops:@[startWaypoint, endWaypoint]
           routingMode:mode
         completionBlock:^(NMARouteResult *result, NMARoutingError error) {
  if (error == NMARoutingErrorNone && result.routes.count > 0) {
    // distance in meters
    NSUInteger distance = [result.routes firstObject].length;
  }
}];