2013-07-01 3 views
-1

Je travaille sur une application basée sur la localisation dans laquelle je dois déplacer MKAnnotation Pin selon l'emplacement du changement. Cela signifie que lorsque l'utilisateur change de lieu d'une fois à l'autre, l'annotation doit être déplacée.MKPinAnnotationAffichez ne bouge pas lorsque vous changez de position

Ceci est mon code de l'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; 
} 

Il laisse tomber la broche sur l'emplacement actuel, mais quand je me déplace avec le dispositif changé l'emplacement & aussi MKPolyline je l'ai mise en œuvre, mais Pin reste.

voir cette image: enter image description here

Vous pouvez voir dans ce l'axe vert est le point de départ & l'autre côté est le point courant. Donc, la broche devrait être sur le point actuel c'est ce que je veux.

J'ai cherché & essayé quelques-unes des solutions de la pile, mais pas en mesure de résoudre mon problème.

Toutes les suggestions & seront très appréciées.

Merci d'avance.

+1

Quelles solutions avez-vous essayé? Avez-vous essayé celui-ci: http://stackoverflow.com/questions/11432746/custom-annotation-view-for-userlocation-not-moving-the-mapview – Anna

+0

@AnnaKarenina a fait cela mais toujours l'annotation est immobile – Mayur

+1

Vous devriez poster le code que vous avez essayé. L'image n'est pas nécessaire. – Anna

Répondre

0

J'ai reçu la solution des suggestions @AnnaKarenina merci beaucoup.

Ce que je l'ai fait est de faire mon MKPinAnnotationView mondiale & alors:

pinView.annotation.coordinate = newLocation.coordinate; 

Cette ligne i ajouté en méthode didUpdateToLocation qui permet d'obtenir une annotation nouvel emplacement à chaque fois.

Merci encore.

+1

Techniquement, la réponse liée suggère de garder une référence à l'objet _id _ qui est celui que vous passez à addAnnotation (pas le _MKAnnotationView_). Garder une référence à la vue peut seulement fonctionner si vous avez juste une annotation. – Anna