Déplacer le point MKMapView vers les coordonnées de pixel

J'ai une petite question. J'utilise une vue personnalisée comme accessoire de légende pour ma vue de carte. J'ai quelques problèmes avec l'obtention de l'annotation pour se déplacer vers le coin inférieur droit de ladite vue. J'essaie actuellement d'get les coordonnées CGPoint de l'annotation sélectionnée, mais au-delà de cela, j'ai dessiné un blanc. Toute aide serait grandement appréciée.

Le code actuel que j'utilise (je sais que c'est incorrect 🙂

CGPoint bottomLeftPoint = CGPointMake(xOffset,[self.internalAnnotationCallout view].frame.size.height); CLLocationCoordinate2D bottomLeftCoord = [self.branchLocation convertPoint:bottomLeftPoint toCoordinateFromView:self.branchLocation]; MKCoordinateSpan span = {latitudeDelta: kMapMultiLatDelta, longitudeDelta: kMapMultiLatDelta}; MKCoordinateRegion region = {bottomLeftCoord, span}; [self.branchLocation setRegion:region animated:YES]; //[self.branchLocation setCenterCoordinate:newCenterCoordinate animated:YES]; 

MODIFIER:

Ok, donc j'ai un peu dérangé cela et j'ai réussi à mettre quelque chose set qui semble fonctionner, en espérant que je comprends maintenant ce que vous essayez d'accomplir!

 - (void)shiftToCorner{ //ignore "Annotation", this is just my own custom MKAnnotation subclass Annotation *currentAnnotation = [[mapView selectedAnnotations] objectAtIndex:0]; [mapView setCenterCoordinate:currentAnnotation.coordinate]; CGPoint fakecenter = CGPointMake(20, 20); CLLocationCoordinate2D coordinate = [mapView convertPoint:fakecenter toCoordinateFromView:mapView]; [mapView setCenterCoordinate:coordinate animated:YES]; } 

Laissez-moi vous expliquer rapidement ce que cela fait; Supposons que vous souhaitiez que votre annotation se place à 20 points du bord droit et à 20 points du bord inférieur de la carte. Si vous y pensez, si l'annotation actuelle est au centre de la vue cartographique, la distance jusqu'à ce point est la même que la distance (20, 20). Cela signifie que nous pouvons envoyer notre annotation à ce point en centrant d'abord notre vue cartographique sur l'annotation, puis en animant (20, 20).