web-dev-qa-db-fra.com

Ajouter des pins à la carte en utilisant MapKit - Swift 3.0

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)
    }
}
23
roguephillips

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

58
Mislav Javor

La façon dont j'ai appris à faire cela est:

  1. 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)
  1. Dassit!
14
danner.tech