Untitled
unknown
swift
3 years ago
3.2 kB
10
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...