9

次の状況を考慮して、任意の場所から現在の場所まで ETA (到着予定時刻) を取得する適切な方法を知りたい:

を。元。- 別のデバイスからその場所 (経度/緯度) を取得し、他の人がいつ迎えに来るかを知りたいです... この場合、ユーザーのこの情報を取得するためにどの Web サービスを使用できますか? mapkit はそのようなオプションを提供していますか?

b. サーバー側で行われ、ユーザーの場所を送信するだけの場合、サーバー側のプログラマーが ETA 情報を取得してユーザーに返送するために使用できるツールは何ですか?

よろしくお願いします。

私はこれを見ました: Apple の Maps API を使用して 2 つの場所間の運転時間を決定する方法はありますか? -問題は、他の場所で見つけたように(私の理解では)、Google apiが現在すべてのiOSユーザーにインストールされていないGoogleマップアプリの使用を必要とすることです。

4

2 に答える 2

5

これは、M から K の答えまでの route.distance を使用して私にとってはうまくいきました

(IBAction)routeButtonPressed:(UIBarButtonItem *)sender {
    MKDirectionsRequest *directionsRequest = [[MKDirectionsRequest alloc] init];
    MKPlacemark *placemark = [[MKPlacemark alloc] initWithPlacemark:thePlacemark];
    [directionsRequest setSource:[MKMapItem mapItemForCurrentLocation]];
    [directionsRequest setDestination:[[MKMapItem alloc] initWithPlacemark:placemark]];
    directionsRequest.transportType = MKDirectionsTransportTypeAutomobile;
    MKDirections *directions = [[MKDirections alloc] initWithRequest:directionsRequest];
    [directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {
        if (error) {
            NSLog(@"Error %@", error.description);
        } else {
            routeDetails = response.routes.lastObject;
            [self.mapView addOverlay:routeDetails.polyline];
            self.destinationLabel.text = [placemark.addressDictionary objectForKey:@"Street"];
            self.distanceLabel.text = [NSString stringWithFormat:@"%0.1f Miles", routeDetails.distance/1609.344];

            self.etaLabel.text = [NSString stringWithFormat:@"%0.1f minutes",routeDetails.expectedTravelTime/60];

            //self.transportLabel.text = [NSString stringWithFormat:@"%u" ,routeDetails.transportType];
            self.allSteps = @"";
            for (int i = 0; i < routeDetails.steps.count; i++) {
                MKRouteStep *step = [routeDetails.steps objectAtIndex:i];
                NSString *newStep = step.instructions;
                self.allSteps = [self.allSteps stringByAppendingString:newStep];
                self.allSteps = [self.allSteps stringByAppendingString:@"\n\n"];
                self.steps.text = self.allSteps;


            }
        }

    }];
}
于 2014-03-21T04:28:23.923 に答える