Merhabalar bu yazımda iOS uygulamalarımızda konum ve harita işlemlerinde sıklıkla kullandığımız Core Location ile birlikte iki mesafe arası uzaklığı hesaplayacağız.
Çoğu uygulamada karşımıza çıkan bu aksiyonu mutlaka görmüşsünüzdür. Kullanıcıların arasında kaç kilometre mesafe kaldığı veya siz o mekana ne kadar uzak olduğunuz vb.
Aşağıda yazdığım örnekleri inceleyelim. İlk olarak anlık konumumuzu elde edelim.
var locationManager:CLLocationManager! func startLocation() { locationManager = CLLocationManager() locationManager.delegate = self locationManager.desiredAccuracy = kCLLocationAccuracyBest locationManager.requestAlwaysAuthorization() if CLLocationManager.locationServicesEnabled() { locationManager.startUpdatingLocation() } }
extension LocationHelper: CLLocationManagerDelegate { func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { let myLocation :CLLocation = locations[0] as CLLocation print("latitude = \(myLocation.coordinate.latitude)") print("longitude = \(myLocation.coordinate.longitude)") } func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) { print("Error \(error)") } }
CLLocationManager ile delegate üzerinden elde ettiğimiz long, lat bilgisini artık kullanabilirsiniz.
func getDistance(long:CLLocationDegrees, lat:CLLocationDegrees, long2:CLLocationDegrees, lat2:CLLocationDegrees) -> String { let coordinateFirst = CLLocation(latitude: lat, longitude: long) let coordinateSecond = CLLocation(latitude: lat2, longitude: long2) return String(format: "%.01f", coordinateFirst.distance(from: coordinateSecond) / 1000) }
Yazdığım bu fonksiyonda ilgili konumları girerek aradaki mesafeyi kilometre cinsinden elde edebilirsiniz.
İlk Yorumu Siz Yapın