Centrer sur un point GPS et restreindre la région
helio
Membre
Bonjour,
J'ai ce code pour marquer un repère sur une carte :
let annotation = MKPointAnnotation()
let centerCoordinate = CLLocationCoordinate2D(latitude: vLat, longitude: vLong)
annotation.coordinate = centerCoordinate
annotation.title = "Title"
mapView.addAnnotation(annotation)
let region = MKCoordinateRegion(center: centerCoordinate, span: MKCoordinateSpan(latitudeDelta: 1, longitudeDelta: 1))
mapView.setRegion(region, animated: true)
Cependant comment diminuer l'échelle de la carte ? et n'avoir seulement qu'un km autour du point.
Merci.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Reduire les deltas
J’avais testé mais en dessous de 1 je ne vois pas de différence ! Et à 1 c’est encore trop grand.
Il me semble avoir vu qu’on pouvait paramétrer un nombre de mètres, mais je ne retrouve pas le code, merci.
Ici peut-être ?
https://developer.apple.com/documentation/mapkit/mkcoordinateregion/1452245-init
Merci, en fait cela fonctionne bien si on paramètre une valeur inférieure à 1, je n'avais pas trop remarqué en mode carte, mais en mode satellite cela se voit mieux.
Maintenant je souhaiterais que la région soit adaptée en fonction du parcours GPS, comment calculer la plus grande distance à insérer dans MKCoordinateRegion en fonction de toutes mes coordonnées ?
Bestialement, en utilisant la fonction union de MKMapRect de manière itérative, après avoir défini un MKMapRect de 1 mètre centré sur chaque point GPS ?
Au final tu auras un MKMapRect qui englobera ton parcours
Il y a sûrement d'autres possibilités !
Pour la question originelle, c'est qu'un delta de latitude/longitude, ça peut faire beaucoup en mètres...
C'est même écrit dans la documentation de init(latitudeDelta:longitudeDelta:) :
Sinon, pour la deuxième question, tu as un petit bout de code ici.
Attention de bien lire tous les commentaires.