如何在 iOS 中获取当前位置的经纬度?


几乎所有应用程序都使用定位服务,因此全面了解定位是必要的。在这篇文章中,我们将了解如何获取当前位置的经纬度。

为此,我们将使用 CLLocationManager,您可以在此处阅读更多相关信息https://developer.apple.com/documentation/corelocation/cllocationmanager

我们将开发一个示例应用程序,在其中我们将用户经纬度打印在 viewDidLoad 方法中,或者根据需要在 UILabel 上点击按钮时打印。

所以让我们开始吧,

步骤 1 − 打开 Xcode → 新建项目 → 单视图应用程序 → 让我们将其命名为“Location”

步骤 2 − 打开 info.plist 文件并添加以下键。

<key>NSLocationWhenInUseUsageDescription</key>

<string>应用程序想要使用您的位置</string>

<key>NSLocationAlwaysUsageDescription</key>

<string>应用程序想要使用您的位置</string>

每当您进行与位置相关的操作时,都需要这些键,我们需要询问用户的权限。

步骤 3 − 在 ViewController.swift 中,

import CoreLocation

步骤 4 − 创建 CLLocationManager 的对象

var locationManager = CLLocationManager()

步骤 5 − 在 viewDidLoad 方法中编写以下代码,

locationManager.requestWhenInUseAuthorization()
var currentLoc: CLLocation!
if(CLLocationManager.authorizationStatus() == .authorizedWhenInUse ||
CLLocationManager.authorizationStatus() == .authorizedAlways) {
   currentLoc = locationManager.location
   print(currentLoc.coordinate.latitude)
   print(currentLoc.coordinate.longitude)
}

此处“requestWhenInUseAuthorization”表示请求在应用程序处于前台时使用定位服务的权限。

步骤 6 − 运行应用程序以获取经纬度,查找完整代码

import UIKit
import CoreLocation
class ViewController: UIViewController {
   var locationManager = CLLocationManager()
   override func viewDidLoad() {
      super.viewDidLoad()
      locationManager.requestWhenInUseAuthorization()
      var currentLoc: CLLocation!
      if(CLLocationManager.authorizationStatus() == .authorizedWhenInUse ||
      CLLocationManager.authorizationStatus() == .authorizedAlways) {
         currentLoc = locationManager.location
         print(currentLoc.coordinate.latitude)
         print(currentLoc.coordinate.longitude)
      }
   }
}

更新于: 2019-07-30

3K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告