web-dev-qa-db-fra.com

Initialiser un objet CLLocation dans Swift avec latitude et longitude

Dans l'objectif C (je n'en ai aucune expérience), vous pouvez initialiser un objet CLLocation avec la latitude et la longitude comme ceci:

CLLocation *myLocation = [[CLLocation alloc]  initWithLatitude:your_latitiude_value longitude:your_longitude_value];

Mais comment faire dans Swift?

J'ai essayé ça,

let loc_coords = CLLocationCoordinate2D(latitude: your_latitiude_value, longitude: your_longitude_value)

let loc = CLLocation().coordinate(loc_coords)

Mais je reçois cette erreur:

Impossible d'appeler "coordonnée" avec une liste d'arguments de type '(CLLocationCoordiate2D)'

J'ai besoin que ce soit un objet CLLocation car je veux utiliser la méthode distanceFromLocation dans locationManager.

J'espère que vous pourrez aider, merci!

20
Henrik Holm

Je ne suis pas près de mon Mac pour le tester, mais les éléments suivants devraient fonctionner. Passez simplement vos valeurs lat et lon à l'initialiseur CLLocaion comme ceci:

let myLocation = CLLocation(latitude: your_latitiude_value, longitude: your_longitude_value) 

Pour référence, vous pouvez vérifier la documentation

27
Vasil Garov

Si tout ce que vous voulez, c'est l'initialiseur qui prend un lat et un long, votre code peut ressembler à ceci:

let latitude: CLLocationDegrees = 37.2
let longitude: CLLocationDegrees = 22.9

let location: CLLocation = CLLocation(latitude: latitude, 
  longitude: longitude)

Il existe d'autres initialiseurs qui prennent plus de paramètres, mais vous ne les avez pas interrogés.

10
Duncan C