繁体   English   中英

使用startUpdatingLocation更新位置时显示多个注释

[英]Displaying multiple annotations when location is updated using startUpdatingLocation

当用户移动时,如果更新用户位置,我的mapView将显示用户注释的数量。 我想知道userAnnotaion如何仅在更改用户位置时显示一次。

[self.myMapview removeAnnotation:userAnnotation]; 不管用

    -(void) viewDidLoad
    {

        [super viewDidLoad];
     [locationManager startUpdatingLocation];

    }





    -(void) checkLongLatitudeAgain {
        [locationManager startUpdatingLocation];
    }




    -(void)locationManager:(CLLocationManager *)manager
        didUpdateToLocation:(CLLocation *)newLocation
               fromLocation:(CLLocation *)oldLocation
    {

        userlat=self.lastLocation.coordinate.latitude;
        userlong=self.lastLocation.coordinate.longitude;
        CLLocationCoordinate2D userCord =
        {userlat, userlong};
        Pins *userAnnotation =
        [[Pins alloc] initWithCoordinate:userCord];
        [userAnnotation setTypeOfAnnotation:CUR_ANNOTATION];

        if (newLocation.coordinate.latitude != self.lastLocation.coordinate.latitude &&
            newLocation.coordinate.longitude != self.lastLocation.coordinate.longitude) {
            [self.myMapView removeAnnotation:userAnnotation];
            self.lastLocation = newLocation;

            userlat=self.lastLocation.coordinate.latitude;
            userlong=self.lastLocation.coordinate.longitude;
            CLLocationCoordinate2D userCord =
            {userlat, userlong};
            Pins *userAnnotation =
            [[Pins alloc] initWithCoordinate:userCord];
            [userAnnotation setTypeOfAnnotation:CUR_ANNOTATION];

            [self.myMapView addAnnotation:userAnnotation];

    }

    }        

annotation设为全局变量,然后在didUpdateLocation:更新其坐标didUpdateLocation:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM