سؤال

أحتاج إلى العثور على مسافة القيادة بين موقعين. لا أحتاج إلى عرض الإرشادات الموجودة في الخريطة ، فقط بحاجة إلى حساب المسافة ، التي أحتاج إلى استخدامها في طلبي.

هل يسمح Mapkit بهذا؟ هل هناك بديل يمكن استخدامه؟

أنا قادر على التقدم في الترميز الجغرافي باستخدام CloudMade ، ولكن لا يبدو أن هناك خيارًا للحصول على مسافة القيادة.

نقدر أي مساعدة.

هل كانت مفيدة؟

المحلول

يوفر CloudMade أيضًا اتجاهات القيادة. إذا كنت مهتمًا فقط بالمسافة ، فما عليك سوى تجاهل التعليمات.

يبدو أن API-Call مثل هذا:

http://navigation.cloudmade.com/your-api-key-goes-here/api/0.3/47.25976،9.58423،47.26117،9.59882/car/shortest.js

ويشمل JSON

....
route_summary: {
total_distance: Distance in meters,...

مصدر

نصائح أخرى

وجدت هذا في مجموعات جوجل ، هل هذا مفيد؟

http://groups.google.com/group/google-maps-api/msg/4dc2fad4f74e3314؟pli=1

في تطبيقاتي ، استخدمت MKDirections للحصول على مسافة القيادة (المشي) بين موقعين.

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;

إذا قارنت نتيجة مسافة القيادة باستخدام MKDirections مع تلك التي تستخدم خرائط Google ، فسترى أنها تختلف. كنت أبحث عن هذه المسألة وصادفت الرابط التالي http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-346437/

على الرغم من أن Apple تعمل على تحسين خدمة الخرائط الخاصة بها ، إلا أنها لا تزال تتنازل عن الدقة إلى Google (IMO) ، على الأقل في سؤال حول مسافة القيادة. لذلك إذا لم تكن الدقة مهمة للغاية في حالتك ، حتى تتمكن من متابعة Apple. وإلا فإنني أوصي التحقق من Google API.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top