الهدف C - iPhone مقارنة 2 إحداثيات Cllocations /GPS
-
21-09-2019 - |
سؤال
حسنًا ، لذا بفضل Claus Broch ، أحرزت بعض التقدم بمقارنة موقعين GPS. يجب أن أكون قادرًا على القول "إذا كان CurrentLocation مساوياً (أي موضع GPS من قائمة) ثم افعل شيئًا
الكود الخاص بي في الوقت الحالي هو:
CLLocationCoordinate2D bonusOne;
bonusOne.latitude = 37.331689;
bonusOne.longitude = -122.030731;
وهو موقع GPS Simulators في حلقة Infinite
CLLocation *loc1 = [[CLLocation alloc] initWithLatitude:bonusOne.latitude longitude:bonusOne.longitude];
double distance = [loc1 getDistanceFrom:newLocation];
if(distance <= 10000000) {
ثم تفعل شيئا }
أي رقم أقل من 10000000 ويفترض أنه لا يوجد تطابق.
المحلول
نعم ، يمكنك استخدام getDistanceFrom
للحصول على المسافة بين نقطتين. المسافة في أمتار. يمكنك استخدام هذه المقارنة ، مقارنة بالدقة الأفقية الحالية من مدير الموقع ، لتحديد ما إذا كنت في وضع "المكافأة One" تقريبًا.
CLLocation *bonusLocation = [[CLLocation alloc] initWithLatitude:bonusOne.latitude longitude:bonusOne.longitude];
float distance = [bonusLocation getDistanceFrom:newLocation];
float threshold = 2 * [newLocation horizontalAccuracy]; // Or whatever you like
if(distance <= threshold) {
// You are at the bonus location.
}
لا تنتمي إلى StackOverflow