سؤال

إذا كنت أرغب في إظهار وضع المستخدم على الخريطة ، وفي الوقت نفسه ، سجل موقع المستخدم ، فهل من الجيد إضافة مراقب إلى Userlocation.location وتسجيل المواقع ، أو إذا ما زلت أستخدم CllocationManager لتسجيل موقع المستخدم واستخدامه MapView.ShowUserLocation لإظهار موقع المستخدم الحالي (المؤشر الأزرق)؟ أريد أن أعرض المؤشر الأزرق الافتراضي الذي يدعمه واجهة برمجة تطبيقات MAPKIT.

أيضًا ، إليك رمز عينة تقريبي:

- (void)viewDidLoad {
    ...

    locationManager = [[CLLocationManager alloc] init]; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    locationManager.distanceFilter = DISTANCE_FILTER_VALUE;
    locationManager.delegate = self; 
    [locationManager startUpdatingLocation];

    myMapView.showUserLocation = YES;
    [myMapView addObserver:self forKeyPath:@"userLocation.location" options:0 context:nil];

    ...
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    // Record the location information
    // ...
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { 
    NSLog(@"%s begins.", __FUNCTION__);

    // Make sure that the location returned has the desired accuracy
    if (newLocation.horizontalAccuracy <= manager.desiredAccuracy)
        return;

    // Record the location information
    // ...
}

تحت الغطاء ، أعتقد أن MkMapview يستخدم أيضًا CllocationManager للحصول على موقع المستخدم الحالي؟ لذا ، هل سيخلق هذا أي مشاكل لأنني أعتقد أن كلا من CllocationManager و MapView سيحاولان استخدام خدمات الموقع نفسها؟ هل سيكون هناك أي تعارض ونقص في البيانات الدقيقة/المطلوبة أو الحالية؟

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

المحلول

انظر الى هذا حتى الدخول: يستخدم CllocationManager نفس البيانات عبر جميع حالاتها ، لذلك لا يوجد تعارض.

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