Search code examples
iphoneobjective-cios6mkmapviewmkannotationview

MKPinAnnotationView not moving while change location


I am working on location based application in which i need to move MKAnnotation Pin as per the change location. It means as user change location from once place to other the Annotation should be moved.

This is my code of annotation:

-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation
{
    static NSString *defaultPinID = @"com.invasivecode.pin";
    pinView = (MKPinAnnotationView *)[mV dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
    if (pinView == nil)
    {
        pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID];
        pinView.enabled = YES;
        pinView.pinColor = MKPinAnnotationColorGreen;
        pinView.canShowCallout = YES;
    }
    return pinView;
}

It drops the pin on the current location but when i move with device the location changed & also MKPolyline i have implement but Pin stays there.

see this image : enter image description here

You can see in this the green pin is the start point & the other side is the current point. So the pin should be on the current point thats what i want.

I have searched & tried few of the solutions of stack but not able to solve my issue.

Any suggestions & help will be highly appreciated.

Thanks in advance.


Solution

  • I got the solution from @AnnaKarenina suggestions thank you so much.

    What i have done is make my MKPinAnnotationView global & then :

    pinView.annotation.coordinate = newLocation.coordinate;
    

    This line i added into didUpdateToLocation method which allows annotation to get new location every time.

    Thanks again.