حساب مسافة القيادة في iPhone
-
21-09-2019 - |
سؤال
أحتاج إلى العثور على مسافة القيادة بين موقعين. لا أحتاج إلى عرض الإرشادات الموجودة في الخريطة ، فقط بحاجة إلى حساب المسافة ، التي أحتاج إلى استخدامها في طلبي.
هل يسمح Mapkit بهذا؟ هل هناك بديل يمكن استخدامه؟
أنا قادر على التقدم في الترميز الجغرافي باستخدام CloudMade ، ولكن لا يبدو أن هناك خيارًا للحصول على مسافة القيادة.
نقدر أي مساعدة.
المحلول
يوفر CloudMade أيضًا اتجاهات القيادة. إذا كنت مهتمًا فقط بالمسافة ، فما عليك سوى تجاهل التعليمات.
يبدو أن API-Call مثل هذا:
ويشمل 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.