Untitled
unknown
swift
2 years ago
3.2 kB
7
Indexable
// // LocationManager.swift // Garageworks-iOS-Revamp // // Created by mac on 16/11/22. // // // LocationManager.swift // GoogleMapsWithSwiftUISample // // Created by Alexander Fanaian on 4/12/20. // Copyright © 2020 Practice. All rights reserved. // import Foundation import Combine import CoreLocation import SwiftUI //import MapKit class LocationManager: NSObject, ObservableObject { // var currentLat: Double? // var currentLong: Double? private var locationManager = CLLocationManager() @Published var lastKnownLocation: CLLocation? = nil // 1 @Published var location: CLLocation? { willSet { locationManager.location } } // 2 var latitude: CLLocationDegrees { return location?.coordinate.latitude ?? 20.5937 } var longitude: CLLocationDegrees { return location?.coordinate.longitude ?? 78.9629 } var didChangeLocationAuthorizationStatus: ((_ status: CLAuthorizationStatus) -> Void)? // 3 override init() { super.init() //Kapil locationManager.delegate = self locationManager.desiredAccuracy = kCLLocationAccuracyBest locationManager.requestAlwaysAuthorization() print("INSIDE LOCATION MANAGER") print(" Current Latitide: \(locationManager.location?.coordinate.latitude),Current Longitude\(locationManager.location?.coordinate.longitude)") // // latitude = locationManager.location?.coordinate.latitude ?? // longitude = locationManager.location?.coordinate.longitude ?? // locationManager.delegate = self // locationManager.desiredAccuracy = kCLLocationAccuracyBest // // locationManager.requestWhenInUseAuthorization() // locationManager.startUpdatingLocation() // locationManager.requestAlwaysAuthorization() // locationManager.distanceFilter = 50 //Location Manager code to fetch current location // self.locationManager.delegate = self // self.locationManager.startUpdatingLocation() } } extension LocationManager: CLLocationManagerDelegate { // 4 func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { guard status == .authorizedWhenInUse else { return } // 4 didChangeLocationAuthorizationStatus?(status) locationManager.startUpdatingLocation() } // 6 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { // Notify listeners that the user has a new location // self.lastKnownLocation = locations.last locationManager = manager // var location1 = locationManager.location?.coordinate // print("Locations: \(location1)") // 8 // locationManager.stopUpdatingLocation() } private func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) { locationManager.stopUpdatingLocation() if ((error) != nil) { print(error.localizedDescription ?? "") } } }
Editor is loading...