2013-09-02 2 views
7

जानना चाहते हैं कि किसी भी स्थान से मेरे वर्तमान स्थान पर ईटीए (अनुमानित समय आगमन) प्राप्त करने का उचित तरीका क्या है, निम्नलिखित पर विचार करें स्थिति:किसी भी स्थान से मेरे वर्तमान स्थान पर ईटीए (अनुमानित समय आगमन) प्राप्त करने का उचित तरीका क्या है

ए। पूर्व। - मुझे किसी अन्य डिवाइस से उसका स्थान (लॉन/लैट) मिला है और जब मैं चाहता हूं कि दूसरा व्यक्ति मुझे उठाएगा ... इस मामले में उपयोगकर्ता के लिए यह जानकारी प्राप्त करने के लिए मैं किस वेब-सेवा का उपयोग कर सकता हूं? क्या मैपकिट उस तरह का विकल्प प्रदान करता है?

बी। यदि यह सर्वर-साइड पर किया जाएगा और मैं केवल अपना उपयोगकर्ता स्थान भेजूंगा, तो मेरे सर्वर-साइड प्रोग्रामर को मेरे उपयोगकर्ता को वापस भेजने के लिए ईटीए जानकारी प्राप्त करने के लिए कौन से टूल्स का उपयोग किया जा सकता है?

सभी को अग्रिम धन्यवाद।

मैंने यह देखा: Is there any way to determine the driving time between two locations using Apple's Maps API? - समस्या, जैसा कि मैंने अन्य स्थानों पर पाया है, (मेरी समझ में) यह है कि Google एपीआई को Google मानचित्र ऐप का उपयोग करने की आवश्यकता है जो अब प्रत्येक आईओएस उपयोगकर्ता पर स्थापित नहीं है।

+1

से कोड को संशोधित किया गया था करने के लिए एम से route.distance का उपयोग कर मेरे लिए काम किया उपयोग करने के लिए का एक टुकड़ा है आपको आईओएस 7 में कुछ नए एसडीके एपीआई देखना चाहिए। – mattyohe

उत्तर

17

मुझे पता है कि यह पोस्ट थोड़ा पुराना है, लेकिन यदि कोई आईओएस 7 के बाद से जवाब देख रहा है तो ऐप्पल इन सभी जानकारी की गणना करने के लिए मैपकिट में एक एपीआई प्रदान करता है।

यहां इस एपीआई

MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init]; 
    [request setSource:[MKMapItem mapItemForCurrentLocation]]; 
    [request setDestination:destination]; 
    [request setTransportType:MKDirectionsTransportTypeAutomobile]; 
    [request setRequestsAlternateRoutes:NO]; 
    MKDirections *directions = [[MKDirections alloc] initWithRequest:request]; 
    [directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) { 
     if (! error && [response routes] > 0) { 
      MKRoute *route = [[response routes] objectAtIndex:0]; 
      //route.distance = The distance 
      //route.expectedTravelTime = The ETA 
     } 
    }]; 
+0

क्या इस विधि ने काम किया है, यह किसी भी लेटे लंबे समय तक मेरे मामले में 0.00 लौट रहा है ... क्या आप मदद कर सकते हैं मैं इसमें मारा गया हूं। – Rohit

+0

हमेशा ऑब्जेक्टएट इंडेक्स: 0' के बजाय 'firstObject' का उपयोग करें। इसका क्रैश सबूत और अधिक स्पष्ट – Laszlo

+0

धन्यवाद आदमी। और मैं परिणाम स्वरूपित करने के लिए एक और समारोह का उपयोग करता हूं। –

5

यह कश्मीर के जवाब मैं इस ट्यूटोरियल map directions tutorial

(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; 


      } 
     } 

    }]; 
} 
+0

क्या यह काम करता है? मेरे मामले में 0.00 किसी भी लंबे समय तक कर सकते हैं आप मदद करते हैं – Rohit

संबंधित मुद्दे

 संबंधित मुद्दे