Zoom dans un MKMapView par programmation
Je suis en utilisant un MKMapView
à l'intérieur d'une application iPhone. Lorsque je clique sur un bouton, le niveau de zoom doit augmenter. C'est ma première approche:
MKCoordinateRegion zoomIn = mapView.region;
zoomIn.span.latitudeDelta *= 0.5;
[mapView setRegion:zoomIn animated:YES];
Cependant, ce code n'a eu aucun effet, puisque je n'ai pas de mise à jour de la longitudeDelta valeur. J'ai donc ajouté cette ligne:
zoomIn.span.longitudeDelta *= 0.5;
Maintenant ça fonctionne, mais parfois seulement. Le latitudeDelta
et longitudeDelta
ne changez pas de la même manière, je veux dire, leurs valeurs ne sont pas proportionnelles. Une idée de comment résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Je n'ai aucune idée si c'est la bonne façon de le faire, mais je suis en utilisant ce pour zoomer et dézoomer.
Nettoyage dkdarel la réponse de
Code Swift:
Ici est une solution plus facile:
Ici, c'est ma façon à déplacer la carte à l'annotation point et de zoom assez proche d'elle. Vous pouvez facilement modifier le facteur de zoom en ligne
CGFloat newLatDelta = 0.06f;
Juste traduit dkardel solution à l'swift:
- Je utiliser un code similaire à la vôtre et il semble fonctionner. Ce qui peut se passer, c'est que votre delta n'est pas de changer assez pour causer le niveau de zoom pour augmenter d'un google le niveau de zoom à l'autre. Cela dépend aussi de l'état initial de votre carte, ce qui pourrait expliquer pourquoi il est intermittent - alors, comment définissez-vous la carte et le niveau de zoom up pour commencer, avant que l'utilisateur appuie sur le bouton de zoom?
Vous pouvez également regarder dans le regionThatFits méthode qui permettra de régler la région que vous fournissez (le nom est de la mémoire que je n'ai pas l'apple docs à portée de main).
mapView.setRegion
méthode a un problème quand votre carte est tournéeVous pouvez le zoom de la carte via
mapView.camera.altitude
de la propriété, mais il n'est pas animé:Vous pouvez créer de nouveaux caméra de l'objet et de le mettre à l'animation:
Dans Swift 4.2