2017-02-16 1 views
-1

Comment puis-je convertir une adresse String en coordonnées CLLocation avec Swift? Je n'ai pas encore de code, j'ai cherché une solution mais je n'ai encore trouvé personne.Convertir l'adresse en coordonnées rapide

Merci.

+4

Vous avez recherché vraiment et n'a rien trouvé? Avez-vous pris la peine de lire les documents CoreLocation d'Apple? https://developer.apple.com/reference/corelocation/clgeocoder –

Répondre

26

Ceci est assez facile.

let address = "1 Infinite Loop, Cupertino, CA 95014" 

    let geoCoder = CLGeocoder() 
    geoCoder.geocodeAddressString(address) { (placemarks, error) in 
     guard 
      let placemarks = placemarks, 
      let location = placemarks.first?.location 
     else { 
      // handle no location found 
      return 
     } 

     // Use your location 
    } 

Vous aurez également besoin d'ajouter et d'importer le framework CoreLocation.

+0

Où puis-je utiliser la variable "location"? – Arcadian

5

Vous pouvez utiliser CLGeocoder, vous pouvez convertir l'adresse (string) pour coordonner et vous vice versa, essayez ceci:

import CoreLocation 

var geocoder = CLGeocoder() 
geocoder.geocodeAddressString("your address") { 
    placemarks, error in 
    let placemark = placemarks?.first 
    let lat = placemark?.location?.coordinate.latitude 
    let lon = placemark?.location?.coordinate.longitude 
    print("Lat: \(lat), Lon: \(lon)") 
} 
+0

Comment puis-je retourner une valeur CLLocation? –

+0

le repère? .location est un type CLLocation. – Greg

2

Cela fonctionne

let geocoder = CLGeocoder() 
let address = "8787 Snouffer School Rd, Montgomery Village, MD 20879" 
     geocoder.geocodeAddressString(address, completionHandler: {(placemarks, error) -> Void in 
      if((error) != nil){ 
       print("Error", error ?? "") 
      } 
      if let placemark = placemarks?.first { 
       let coordinates:CLLocationCoordinate2D = placemark.location!.coordinate 
       print("Lat: \(coordinates.latitude) -- Long: \(coordinates.longitude)") 
      } 
     })