使用 SwiftUI 和 MapKit 检索用户当前位置
Posted
技术标签:
【中文标题】使用 SwiftUI 和 MapKit 检索用户当前位置【英文标题】:Retrieve user current location using SwiftUI and MapKit 【发布时间】:2020-01-16 20:18:11 【问题描述】:我想知道如何使用 SwiftUI 框架获取用户当前位置。我已经显示了地图,但我想知道如何获取当前位置的用户纬度和经度。随意创建一个类,但请解释类操作以及在哪里实现它。 通过使用 UIViewRepresentable 和名为 makeUIView 和 updateUIView 的两个函数来显示地图 提前谢谢你
【问题讨论】:
查看***.com/questions/56533059/…获取用户的当前位置和developer.apple.com/tutorials/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)")
跨度>
问题是我如何把它放在地图视图中
如何创建一个实例呢?
查看***.com/questions/56553527/… 来放置我刚刚向您展示的如何进入 mapView 的变量以上是关于使用 SwiftUI 和 MapKit 检索用户当前位置的主要内容,如果未能解决你的问题,请参考以下文章
你能从 SwiftUI 中的 MapKit 数据库中获取纬度和经度吗
SwiftUI MapKit UIViewRepresentable 无法显示警报