ポイント間の距離の計算
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;
}
}];