Nouveau codeur, essayant de comprendre comment utiliser MapKit. L'objectif est de créer une carte à laquelle les utilisateurs peuvent ajouter des épingles à l'aide de leur adresse. Cependant, à l'étape actuelle, j'ai du mal à comprendre comment ajouter des épingles à la carte.
Comment puis-je ajouter une épingle à la carte? J'ai eu du mal à comprendre comment utiliser les annotations jusqu'à présent.
C'est ce pour quoi j'espère de l'aide/direction. Merci!
import UIKit
import MapKit
import CoreLocation
class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate
{
@IBOutlet weak var bigMap: MKMapView!
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager.requestWhenInUseAuthorization()
self.locationManager.startUpdatingLocation()
self.bigMap.showsUserLocation = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations.last
let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.02, longitudeDelta: 0.02))
self.bigMap.setRegion(region, animated: true)
self.locationManager.stopUpdatingLocation()
}
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
print("Errors " + error.localizedDescription)
}
}
Ils s'appellent annotations
dans le MapKit et vous les instanciez comme suit:
let annotation = MKPointAnnotation()
puis, dans la méthode viewDidLoad()
, définissez simplement les coordonnées et ajoutez-les à la carte, comme suit:
annotation.coordinate = CLLocationCoordinate2D(latitude: 11.12, longitude: 12.11)
mapView.addAnnotation(annotation)
Les chiffres sont vos coordonnées
La façon dont j'ai appris à faire cela est:
Dans la même fonction que viewDidLoad (), placez les lignes de code suivantes:
let annotation = MKPointAnnotation()
annotation.title = "Your text here"
//You can also add a subtitle that displays under the annotation such as
annotation.subtitle = "One day I'll go here..."
annotation.coordinate = center
C’est le seul endroit où je peux voir où vous avez une coordonnée si tout le reste échoue, ajoutez simplement la coordonnée (recherchez sur Google si vous le souhaitez.
besoin de savoir comment créer une coordonnée) et la mettre égale à la
variable "annotation.coordinate"
map.addAnnotation(annotation)