ios swift cllocationmanager reverse-geocoding

ios - Ubicación de geocodificación inversa en Swift



cllocationmanager reverse-geocoding (1)

Mi entrada es una latitud y longitud. Necesito usar la función reverseGeocodeLocation de swift, para darme el resultado de la localidad. El código que he tratado de usar es

println(geopoint.longitude) println(geopoint.latitude) var manager : CLLocationManager! var longitude :CLLocationDegrees = geopoint.longitude var latitude :CLLocationDegrees = geopoint.latitude var location: CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude) println(location) CLGeocoder().reverseGeocodeLocation(manager.location, completionHandler: {(placemarks, error) -> Void in println(manager.location) if error != nil { println("Reverse geocoder failed with error" + error.localizedDescription) return } if placemarks.count > 0 { let pm = placemarks[0] as CLPlacemark println(pm.locality) } else { println("Problem with the data received from geocoder") }

en los troncos que recibo

//-122.0312186 //37.33233141 //C.CLLocationCoordinate2D //fatal error: unexpectedly found nil while unwrapping an Optional value

Parece que la función CLLocationCoordinate2DMake está fallando, lo que provoca el error fatal en la función reverseGeocodeLocation . ¿He eliminado el formato en alguna parte?


nunca invierte la geocodificación de la ubicación, pero se pasa a manager.location.

vea: CLGeocoder().reverseGeocodeLocation(manager.location, ...

Supongo que fue un error copiar y pegar y que este es el problema, el código en sí se ve bien, casi;)

código de trabajo

var longitude :CLLocationDegrees = -122.0312186 var latitude :CLLocationDegrees = 37.33233141 var location = CLLocation(latitude: latitude, longitude: longitude) //changed!!! println(location) CLGeocoder().reverseGeocodeLocation(location, completionHandler: {(placemarks, error) -> Void in println(location) if error != nil { println("Reverse geocoder failed with error" + error.localizedDescription) return } if placemarks.count > 0 { let pm = placemarks[0] as! CLPlacemark println(pm.locality) } else { println("Problem with the data received from geocoder") } })