2010-02-03 19 views

उत्तर

1

नहीं, लेकिन यदि आपके पास देशांतर/अक्षांश है तो दूरी की गणना करना काफी आसान है। यह निश्चित रूप से उन बिंदुओं के बीच गणितीय दूरी है। वास्तविक ड्राइविंग या पैदल दूरी नहीं जो वास्तविक मार्ग पर आधारित है।

+0

ठीक है, दुर्भाग्य से मुझे ड्राइविंग दूरी की आवश्यकता है। मुझे इसे प्रदर्शित करने की ज़रूरत नहीं है, बस दूरी प्राप्त करें। – eemceebee

2

कैसे कोर स्थान ढांचे का उपयोग कर के बारे में:

  • (CLLocationDistance) getDistanceFrom: (स्थिरांक CLLocation *) स्थान

आप अक्षांश की आवश्यकता होगी/दोनों पतों के लिए देशांतर।

संपादित करें: आईओएस 3.2 में बहिष्कृत। दूरी का उपयोग करेंप्रमोलेशन: विधि इसके बजाय।

+0

हाँ, यह फ़ॉलबैक समाधान हो सकता है। लेकिन जैसा कि मैंने पहले कहा था कि मैं ड्राइविंग दूरी नहीं चाहता हूं न केवल 2 स्थानों के बीच की दूरी। प्रश्न बनी हुई है, क्या मैपकिट से स्थान प्राप्त करने का कोई तरीका है? जैसे मैं एक पता दर्ज करता हूं और यह मुझे स्थान देता है? – eemceebee

+0

इस प्रश्न का पुनरीक्षण, यह स्पष्ट रूप से नहीं बताया गया है कि आप 2 पते के बीच ड्राइविंग दूरी चाहते हैं। मैं सवाल अद्यतन करने का सुझाव देना चाहता हूं। – Marco

+0

तदनुसार प्रश्न अपडेट किया गया। – Marco

0

मेरे अनुप्रयोगों में मैंने दो स्थानों के बीच ड्राइविंग (पैदल दूरी) दूरी प्राप्त करने के लिए एमकेडिरेक्शन का उपयोग किया।

CLLocationCoordinate2D startCoordinates = YOUR_START_COORDINATES; 
CLLocationCoordinate2D endCoordinates = YOUR_END_COORDINATES; 

MKPlacemark *startPoint = [[MKPlacemark alloc] initWithCoordinate:startCoordinates]; 
MKPlacemark *endPoint = [[MKPlacemark alloc] initWithCoordinate:endCoordinates]; 

MKMapItem *startItem = [[MKMapItem alloc] initWithPlacemark:startPoint]; 
MKMapItem *endItem = [[MKMapItem alloc] initWithPlacemark:endPoint]; 

MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init]; 

request.source = startItem; 
request.destination = endItem; 
request.transportType = MKDirectionsTransportTypeAutomobile; //here you can choose a transport type you need 

MKDirections *direction = [[MKDirections alloc] initWithRequest:request]; 

[direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse * _Nullable response, NSError * _Nullable error) { 

      if (response) { 
       for (MKRoute *route in response.routes) { 
        NSLog(@"Distance : %f", route.distance); 
       } 
      } 

}]; 

अगर आप आप एक पते के रूप में स्थान दिया है, ताकि आप CLGeocoder की विधि, दे देंगे जो उपयोग कर सकते हैं आप अक्षांश और अपना पता

- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler; 

के देशांतर आप का उपयोग कर एक ड्राइविंग दूरी के परिणाम की तुलना Google मानचित्र का उपयोग करके एमकेडिरेक्शन, आप देखेंगे कि वे भिन्न हैं। मैं इस मामले के बारे में खोज रहा था और निम्नलिखित लिंक पर आया और http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/

हालांकि ऐप्पल अपनी मानचित्र सेवा में सुधार कर रहा है, फिर भी वे ड्राइविंग दूरी के संबंध में कम से कम एक प्रश्न में Google (आईएमओ) की सटीकता में स्वीकार करते हैं। इसलिए यदि आपके मामले में सटीकता बहुत महत्वपूर्ण नहीं है, तो आप ऐप्पल के साथ अनुसरण कर सकते हैं। अन्यथा मैं Google एपीआई की जांच करने की सिफारिश करता हूं।

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