簡體   English   中英

如何在當前位置設置MKMapView區域並跟蹤用戶位置?

[英]How do you set MKMapView region on current location and follow user location?

我有一個按鈕,可將地圖居中並根據用戶的當前位置設置區域,然后設置要遵循的用戶跟蹤模式。 我在移動時關注用戶,如果他們移動地圖或縮小地圖,則會將用戶跟蹤模式設置為無。

這就是我所擁有的

guard let currentLocation = locationManager.location else { return }
let coordinateRegion = MKCoordinateRegion(center: currentLocation.coordinate,
                                          latitudinalMeters: regionRadius,
                                          longitudinalMeters: regionRadius)
map.setRegion(coordinateRegion, animated: true)
map.setUserTrackingMode(MKUserTrackingMode.follow, animated: true)

它成功地將區域設置回用戶的當前位置,然后遵循用戶跟蹤模式,但是由於某種原因,該模式不再遵循。

您需要等待setRegion動畫完成,以免與setUserTrackingMode混淆。

guard let currentLocation = locationManager.location else { return }
let coordinateRegion = MKCoordinateRegion(center: currentLocation.coordinate, latitudinalMeters: regionRadius, longitudinalMeters: regionRadius)

MKMapView.animate(withDuration: 0.5, animations: {
    self.map.setRegion(coordinateRegion, animated: true)
}) { _ in
    self.map.setUserTrackingMode(MKUserTrackingMode.follow, animated: false)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM