У меня есть главный контроллер с таким кодом, который настраивает Mapbox в части экрана, и он работает... Однако документированный код никогда не приводит к перемещению или касанию области просмотра камеры. Я что-то пропустил?
Сообщение onCameraChange отображается в журнале один раз, а не при перемещении по карте.
import UIKit
import MapboxMaps
class ViewController: UIViewController, MapInitOptionsProvider, URLSessionDelegate {
private var mapView: MapView!
private var cancellables: Set = []
public func mapInitOptions() -> MapInitOptions {
//TODO... never called???
let cameraOptions = CameraOptions(center: CLLocationCoordinate2D(latitude: NUMBER, longitude: NUMBER), zoom: 1)
//return a custom MapInitOptions
return MapInitOptions(
cameraOptions: cameraOptions,
styleURI: .light)// StyleURI(rawValue: "mapbox://my/favorite/style/goes/here..."))
}
override func viewDidLoad() {
let defaults = UserDefaults.standard
super.viewDidLoad()
self.mapView = MapView(frame: view.bounds)
self.mapView.mapboxMap.mapStyle = MapStyle(uri:StyleURI(rawValue: "mapbox://my-favorite-style")!)
self.mapView.mapboxMap.onCameraChanged.observe { [weak self] cameraChanged in
guard let self else { return }
updateMap()
print("onCameraChange")
}.store(in: &cancellables)
self.mapView.gestures.onMapTap.observe { [unowned self] context in
print("onMapTap")
updateMap()
}.store(in: &cancellables)
...
Подробнее здесь: https://stackoverflow.com/questions/791 ... ged-mapbox