IOS 使用CoreLocation实现定位(Swift版)
作者:互联网
1、配置Custom IOS Target Prpperties文件
2、导入CoreLocation.framework
3、使用步骤 在使用的swift文件的开始导入头文件->" import CoreLocation"
示例代码:
import CoreLocation //导入定位核心库
class ViewController: UIViewController ,CLLocationManagerDelegate{ //遵守定位代理,以获取定位结果。
let locationManager = CLLocationManager()
var currentLocation:CLLocation!
var lock = NSLock()
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest //定位精确度(最高)一般有电源接入,比较耗电
//kCLLocationAccuracyNearestTenMeters; //精确到10米
locationManager.distanceFilter = 50
//设备移动后获得定位的最小距离(适合用来采集运动的定位)
locationManager.requestWhenInUseAuthorization() //弹出用户授权对话框,使用程序期间授权(ios8后)
//requestAlwaysAuthorization; //始终授权
locationManager.startUpdatingLocation()
print("开始定位 。。。")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/**
* CLlocationDelegate
*/
//委托传回定位,获取最后一个
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
lock.lock()
currentLocation = locations.last
//注意:获取集合中最后一个位置(最新的位置)
print("定位经纬度为:\(currentLocation.coordinate.latitude)")
//一直发生定位错误输出结果为0:原因是我输出的是currentLocation.altitude(表示高度的)而不是currentLoction.coordinate.latitude(这个才是纬度)
print(currentLocation.coordinate.longitude)
lock.unlock()
}
func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
print("定位出错拉!!\(error)")
}
参考资料网页:
1、使用CoreLocation进行定位(Swift版)
https://blog.csdn.net/qq_14920635/article/details/52400868
2、iOS11及以上操作系统无法定位问题完美解决方案
https://blog.csdn.net/jia12216/article/details/81316479
3、如果将经纬度转换成城市名称,需要导入MapKit.framework
https://www.cnblogs.com/lwk151124/p/5936359.html
标签:定位,CoreLocation,IOS,locationManager,func,print,Swift,currentLocation 来源: https://blog.csdn.net/Kariswei/article/details/119109893