作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Apple 文档 setUserTrackingMode:animated:
据称:
将跟踪模式设置为 MKUserTrackingModeFollow 或 MKUserTrackingModeFollowWithHeading 会使 map View 将 map 置于该位置的中心并开始跟踪用户的位置。如果 map 缩小, map View 自动放大 在用户的位置上,有效地改变当前的可见区域。
我的问题是,有没有一种方法可以在设置用户跟踪模式的同时保留 map 上的当前缩放级别?
最佳答案
我能够做到这一点的方法是调用使用用户位置和中心的 MKCoordinateRegionMakeWithDistance 调用。我用 5000 作为我的值(value)观。这就是我的测试代码的样子。 `导入UIKit
导入核心位置
导入 MapKit
class ViewController: UIViewController, CLLocationManagerDelegate{
@IBOutlet weak var mapView: MKMapView!
var locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
if (CLLocationManager.locationServicesEnabled()){
mapView.showsUserLocation = true
mapView.mapType = MKMapType.satellite
mapView.setUserTrackingMode(MKUserTrackingMode.followWithHeading, animated: true)
//locationManager = CLLocationManager()
//locationManager.delegate = self
//locationManager.desiredAccuracy = kCLLocationAccuracyBest
//locationManager.requestAlwaysAuthorization()
//locationManager.startUpdatingLocation()
}
}
/*func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
let location = locations.last as! CLLocation
let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
//let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
let region = MKCoordinateRegionMakeWithDistance(center, 500, 500)
self.mapView.setRegion(region, animated: true)
}*/
@IBAction func centerButton(_ sender: UIButton, forEvent event: UIEvent) {
let location = MKUserLocation()
let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
let region = MKCoordinateRegionMakeWithDistance(center, 5000, 5000)
self.mapView.setRegion(region, animated: true)
mapView.setUserTrackingMode(MKUserTrackingMode.followWithHeading, animated: true)
}
关于ios - 将UserTrackingMode 设置为 MKUserTrackingModeFollow 而不更改缩放级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28169356/
在 Apple 文档 setUserTrackingMode:animated: 据称: 将跟踪模式设置为 MKUserTrackingModeFollow 或 MKUserTrackingModeF
我有一个占据全屏的 MapView 和一些覆盖 map 的屏幕顶部的元素。这些顶部元素可能会覆盖蓝色位置标记。 该 map 目前正在使用 MKUserTrackingModeFollow 进行良好的跟
我是一名优秀的程序员,十分优秀!