Получить текущее местоположение пользователя, используя SwiftUI и MapKit - PullRequest
0 голосов
/ 16 января 2020

Я хотел бы знать, как получить текущее местоположение пользователя с помощью SwiftUI Framework. У меня уже есть карта, но я хочу знать, как узнать пользовательскую широту и долготу текущего местоположения. Не стесняйтесь создавать класс, но, пожалуйста, объясните действия класса и где его реализовать. Наличие карты для отображения уже осуществляется с помощью UIViewRepresentable и двух функций, называемых makeUIView и updateUIView Заранее спасибо

1 Ответ

1 голос
/ 16 января 2020

Создайте экземпляр 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)"
...