2017-02-16 30 views
-1

Как конвертировать String адрес в CLLocation координаты с Swift? У меня еще нет кода, я искал решение, но я еще никого не нашел.Конвертировать адрес в координаты swift

Спасибо.

+4

Вы действительно искали и ничего не нашли? Вы потрудились читать документы Apple CoreLocation? https://developer.apple.com/reference/corelocation/clgeocoder –

ответ

26

Это довольно легко.

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 
    } 

Вам также необходимо будет добавить и импортировать инфраструктуру CoreLocation.

+0

Где я могу использовать переменную «location»? – Arcadian

5

Вы можете использовать CLGeocoder, вы можете преобразовать адрес (строка) для координации и вы наоборот, попробуйте следующее:

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

Как вернуть значение CLLocation? –

+0

метка «.location» - это тип CLLocation. – Greg

2

Это работает

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)") 
      } 
     })