

var locationManager : CLLocationManager = CLLocationManager()
var geocoder : CLGeocoder = CLGeocoder()
var placemark : CLPlacemark = CLPlacemark()
func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
println("didFailWithError %@", error)
var errorAlert : UIAlertView = UIAlertView(title: "Error", message: "Failed to get your location", delegate: nil, cancelButtonTitle: "OK")
}
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
//println("didUpdateToLocation %@",locations)
var currentLocation : CLLocation = locations[0] as CLLocation
if currentLocation != nil{
var stringLongitude : NSString = NSString(format: "%0.8f", currentLocation.coordinate.longitude)
var stringLatitude : NSString = NSString(format: "%0.8f", currentLocation.coordinate.latitude)
lbl_longitude.text = stringLongitude
lbl_latitude.text = stringLatitude
}
locationManager.stopUpdatingLocation()
CLGeocoder().reverseGeocodeLocation(manager.location, completionHandler: {(placemarks, error)->Void in
if error {
//println(“Reverse geocoder failed with error” + error.localizedDescription)
println("Reverse geocode failed with error")
return
}
if placemarks.count > 0 {
let pm = placemarks[0] as CLPlacemark
self.displayLocationInfo(pm)
} else {
// println(“Problem with the data received from geocoder”)
println("Problem with the date recieved from geocoder")
}
})
}
func displayLocationInfo(placemark: CLPlacemark) {
if placemark != nil {
var tempString : String = ""
if(placemark.locality != nil){
tempString = tempString + placemark.locality + "\n"
}
if(placemark.postalCode != nil){
tempString = tempString + placemark.postalCode + "\n"
}
if(placemark.administrativeArea != nil){
tempString = tempString + placemark.administrativeArea + "\n"
}
if(placemark.country != nil){
tempString = tempString + placemark.country + "\n"
}
lbl_address.text = tempString
}
}
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()