LocationManager
open class LocationManager : NSObject, CLLocationManagerDelegate, @unchecked Sendable
位置服务
注意:Info.plist需要添加NSLocationWhenInUseUsageDescription项。 如果请求Always定位,还需添加NSLocationAlwaysUsageDescription项和NSLocationAlwaysAndWhenInUseUsageDescription项。 iOS11可通过showsBackgroundLocationIndicator配置是否显示后台定位指示器
-
单例模式
Declaration
Swift
public static let shared: LocationManager
-
坐标转“纬度,经度"字符串
Declaration
Swift
open class func locationString(_ coordinate: CLLocationCoordinate2D) -> String
-
“纬度,经度"字符串转坐标
Declaration
Swift
open class func locationCoordinate(_ string: String) -> CLLocationCoordinate2D
-
计算两个经纬度间的距离
Declaration
Swift
open class func locationDistance(from: CLLocationCoordinate2D, to: CLLocationCoordinate2D) -> CLLocationDistance
-
经纬度反解析为地址
Declaration
Swift
@discardableResult open class func reverseGeocode(_ coordinate: CLLocationCoordinate2D, locale: Locale? = nil, completionHandler: @escaping CLGeocodeCompletionHandler) -> CLGeocoder
-
地址解析为经纬度
Declaration
Swift
@discardableResult open class func geocode(_ address: String, region: CLRegion? = nil, locale: Locale? = nil, completionHandler: @escaping CLGeocodeCompletionHandler) -> CLGeocoder
-
是否启用Always定位,默认NO,请求WhenInUse定位
Declaration
Swift
open var alwaysLocation: Bool
-
是否启用后台定位,默认NO。如果需要后台定位,设为YES即可
Declaration
Swift
open var backgroundLocation: Bool
-
是否启用方向监听,默认NO。如果设备不支持方向,则不能启用
Declaration
Swift
open var headingEnabled: Bool { get set }
-
是否发送通知,默认NO。如果需要通知,设为YES即可
Declaration
Swift
open var notificationEnabled: Bool
-
定位完成是否立即stop,默认NO。如果为YES,只会回调一次
Declaration
Swift
open var stopWhenCompleted: Bool
-
位置管理对象
Declaration
Swift
open lazy var locationManager: CLLocationManager { get set }
-
当前位置,中途定位失败时不会重置
Declaration
Swift
open private(set) var location: CLLocation? { get }
-
当前方向,headingEnabled启用后生效
Declaration
Swift
open private(set) var heading: CLHeading? { get }
-
当前错误,表示最近一次定位回调状态
Declaration
Swift
open private(set) var error: Error? { get }
-
定位改变block方式回调,可通过error判断是否定位成功
Declaration
Swift
open var locationChanged: (@Sendable (LocationManager) -> Void)?
-
开始更新位置
Declaration
Swift
open func startUpdateLocation()
-
停止更新位置
Declaration
Swift
open func stopUpdateLocation()
-
Undocumented
Declaration
Swift
open func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
-
Undocumented
Declaration
Swift
open func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading)
-
Undocumented
Declaration
Swift
open func locationManager(_ manager: CLLocationManager, didFailWithError error: Error)