iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 23
0
Mobile Development

[初探] 用 SwiftUI - 打造一個自助洗衣應用系列 第 23

第二十三日、MapKit 篇 - 定位元件製作

今天提到的是 CoreLocation
這個是定位的一環
你要做出定位就必須使用到他

class LocationFetcher: NSObject, CLLocationManagerDelegate {

    let manager = CLLocationManager()
    var lastKnownLocation: CLLocationCoordinate2D?

    override init() {
        super.init()
        manager.delegate = self
    }

//這裡就是請求
    func start() {
        manager.requestAlwaysAuthorization()
        manager.requestWhenInUseAuthorization()
        manager.startUpdatingLocation()
    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        lastKnownLocation = (locations.first?.coordinate)!

    }
    
}

第一步

那首先你要讓手機同意你使用定位功能
而且你必須在xcode那邊去先做請求地確認 info.plist 之後再請使用者確認
privacy-location when in use usag...
privacy-location usage description
privacy-location always and when I


start()的部分就是去請求使用者確認
在主視圖的時候
先init去做部屬
讓他先初始化

第二步

lastKnownLocation 激活讓他讀取你的位置

裡用主介面的按鈕激活

Button(action: {
    print("回到座標點")
    self.locationFetcher.start()
    let location = self.locationFetcher.lastKnownLocation
    self.mapViewState.center = location
				}
				) {
    Image(systemName: "location")
				}

mapViewState.center 會使使用者位置回到 lastKnownLocation


上一篇
第二十二日、MapKit 篇 - 座位標的設定
下一篇
第二十四日、MapKit 篇 - 生成洗衣店座標
系列文
[初探] 用 SwiftUI - 打造一個自助洗衣應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言