如何在iOS App中基于GPS和地址名称查找用户位置?

时间:2018-12-17 12:20:56

标签: swift cllocationmanager

我尝试编译此示例:

https://www.appcoda.com/how-to-get-current-location-iphone-user/

由于是iOS开发编程的新手,并且此示例很旧,所以我无法编译它。任何人都可以编译该示例以使用最新的Xcode版本并将其上传到此处进行检查吗?

1 个答案:

答案 0 :(得分:0)

我认为您要问的是获取用户的位置并将其转换为附近的街道地址。

获取用户的位置

1。。首先,声明以下内容:

let locationManager = CLLocationManager()

2。。然后,在您的viewDidLoad()中放入:

// Requesting authorization from the user
self.locationManager.requestAlwaysAuthorization() 

// For use in foreground
self.locationManager.requestWhenInUseAuthorization()

if CLLocationManager.locationServicesEnabled() {
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
    locationManager.startUpdatingLocation()
}

3。。然后,转到Xcode中的Info.plist文件,并添加密钥Privacy - Location When In Use Usage Description,并将其值作为需要用户位置的说明:

4。。将CLLocationManagerDelegate添加到您的班级。

5。。通过这种方法,获取用户的位置:

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    guard let locValue: CLLocationCoordinate2D = manager.location?.coordinate else { return }
    print("locations = \(locValue.latitude) \(locValue.longitude)")
}

将经纬度转换为地址

为此,我不会为您提供完整的教程。但是,我将向您介绍Google Maps APIOpenStreetMap API。使用这些API,您可以输入纬度和经度,它将返回一个地址。