بحاجة إلى مساعدة في تصحيح رمز cllocation لإيجاد مسافة بين نقطتين

StackOverflow https://stackoverflow.com/questions/4141975

  •  30-09-2019
  •  | 
  •  

سؤال

أحاول نشر الكود التالي في تطبيق العرض الخاص بي ، لكنني أتلقى الأخطاء التالية عندما أحاول تشغيله:

GPSVIEWCONTROLLER.H

CLLocationManager *lm;
CLLocation *firstLocation;
CLLocation *secondLocation;
CLLocationDistance *distance;
NSString *distanceString;

GPSVIEWCONTROLLER.M

firstLocation = [[[CLLocation alloc] initWithLatitude:lat1 longitude:lon1] autorelease];
secondLocation = [[[CLLocation alloc] initWithLatitude:lat2 longitude:lon2] autorelease];
distance = [secondLocation distanceFromLocation:firstLocation]; //CLLocation may not respond to distanceFromLocation

double dist = distance / 1000;  //invalid operands to binary

distanceString = [[NSString alloc] stringWithFormat: @"%f", dist];
NSLog(@"the distance between the two points is: %@", distanceString); 

في رمز المثال الخاص بي أعلاه ، كيف يمكنني تحويل المتغير "المسافة" من نوع "cllocationDistance" إلى نوع "مزدوج"؟

أحاول ببساطة حساب المسافة بين نقطتين باستخدام كائنين مختلفين من cllocation ، وطباعته إلى وحدة التحكم. LAT1 ، LON1 ، LAT2 ، LON2 زوجي.

هل يمكن لأي شخص أن يرى أين أخطئ؟

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

المحلول

CllocationDistance مزدوج ، لذلك لا تحتاج إلى محاولة التحويل إلى ضعف أو على الإطلاق.

يمكنك حساب بياناتك مثل هذا ، وسوف تعمل:

CLLocationDistance distance = [secondLocation distanceFromLocation:firstLocation];  // distance is expressed in meters

CLLocationDistance kilometers = distance / 1000.0;
NSString *distanceString = [[NSString alloc] initWithFormat: @"%f", kilometers];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top