【问题标题】:Retrieve user current location using SwiftUI and MapKit使用 SwiftUI 和 MapKit 检索用户当前位置
【发布时间】:2020-01-16 20:18:11
【问题描述】:

我想知道如何使用 SwiftUI 框架获取用户当前位置。我已经显示了地图,但我想知道如何获取当前位置的用户纬度和经度。随意创建一个类,但请解释类操作以及在哪里实现它。 通过使用 UIViewRepresentable 和名为 makeUIView 和 updateUIView 的两个函数来显示地图 提前谢谢你

【问题讨论】:

标签: ios swift mobile swiftui


【解决方案1】:

创建CLLocationManager的实例:

var locManager = CLLocationManager()
locManager.requestWhenInUseAuthorization()

然后获取详细信息:

var currentLocation: CLLocation!

if( CLLocationManager.authorizationStatus() == .authorizedWhenInUse ||
    CLLocationManager.authorizationStatus() ==  .authorizedAlways){

  currentLocation = locManager.location

}

然后得到经度或纬度:

let longitude = currentLocation.coordinate.longitude
let latitude = currentLocation.coordinate.latitude

如果您想在 swiftUI 视图脚本中执行它,请创建实例:

@ObservedObject var locationManager = LocationManager()

分别获取:

var userLatitude: String {
    return "\(locationManager.lastLocation?.coordinate.latitude ?? 0)"

var userLongitude: String {
        return "\(locationManager.lastLocation?.coordinate.longitude ?? 0)"

【讨论】:

  • 我可以把它放在 let coordinate = CLLocationCoordinate2D(latitude: latitude , longitude: longitude) 里面吗
  • 不,你必须先为它创建一个实例,这样会更好,因为你只需要打印出来就像print("Latitude: \(userLatitude) and Logitude: \(userLongitude)")跨度>
  • 问题是我如何把它放在地图视图中
  • 如何创建一个实例呢?
  • 查看stackoverflow.com/questions/56553527/… 来放置我刚刚向您展示的如何进入 mapView 的变量
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-02
  • 1970-01-01
  • 2012-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多