İçeriğe geç

Core Location ile mesafe hesaplama

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.

 

Tarih:iOSMapKit

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © 2020 Kenan Atmaca