gpt4 book ai didi

ios - Mapbox 中的 MKUserTrackingBarButtonItem

转载 作者:可可西里 更新时间:2023-11-01 00:23:05 26 4
gpt4 key购买 nike

我正在评估从 MapKit 到 Mapbox 的转换。

除了 MKUserTrackingBarButtonItem 之外,我已经找到了所有功能的等效项。

let trackingButton = MKUserTrackingBarButtonItem(mapView: map)

有没有办法为 Mapbox iOS SDK 创建这个按钮?

我在 Mapbox 文档中没有找到任何类似的东西,我不能继续使用这个函数,因为它需要一个 MKMapView

提前致谢。

最佳答案

以防万一其他人有兴趣,这是this answer在一个简单的 ViewController 中转换为 Swift。我只是遗漏了 .FollowWithCourse 以复制 MKUserTrackingBarButtonItem 的行为。

class ViewController: UIViewController, MGLMapViewDelegate {

@IBOutlet weak var map: MGLMapView!
@IBOutlet weak var toolbar: UIToolbar!

override func viewDidLoad() {
super.viewDidLoad()

map.delegate = self

map.setCenterCoordinate(CLLocationCoordinate2D(latitude: 40.7326808, longitude: -73.9843407), zoomLevel: 12, animated: false)

let trackingButton = UIBarButtonItem(image: UIImage(named: "TrackingLocationOffMask"), style: UIBarButtonItemStyle.Plain, target: self, action: "trackingButtonChanged")
toolbar.items!.insert(trackingButton, atIndex: 0)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

func mapView(mapView: MGLMapView, didChangeUserTrackingMode mode: MGLUserTrackingMode, animated: Bool) {
var image: String = "TrackingLocationOffMask.png"

switch (mode) {
case .Follow:
image = "TrackingLocationMask.png"
break
case .FollowWithHeading:
image = "TrackingHeadingMask.png"
break
default:
break
}

UIView.animateWithDuration(0.25, animations: {
(self.toolbar.items![0] as UIBarButtonItem).image = UIImage(named: image)
})
}

func trackingButtonChanged() {
var mode: MGLUserTrackingMode = .Follow

switch (map.userTrackingMode) {
case .Follow:
mode = .FollowWithHeading
break
case .FollowWithHeading:
mode = .None
break
default:
break
}

map.userTrackingMode = mode
}
}

图像是here在 GitHub 上的 mapbox-gl-native。

关于ios - Mapbox 中的 MKUserTrackingBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35717633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com