RxMKMapView is a RxSwift wrapper for MKMapView (MapKit) delegate providing a Reactive Delegate Proxy as well as a bindable annotations interface to dynamically change the "data source" of your map.
RxMKMapView is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod"RxMKMapView"Add this to Cartfile
github "RxSwiftCommunity/RxMKMapView"
// MARK: Setup MKMapView
letmapView=MKMapView(frame: view.frame)
view.addSubview(mapView)
// MARK: Bind Annotations
requestForAnnotations() // Observable<[MyMapAnnotation]>
.asDriver(onErrorJustReturn:[]).drive(mapView.rx.annotations).disposed(by: disposeBag)
// MARK: Respond to Loading Events
mapView.rx.willStartLoadingMap
.asDriver().drive(onNext:{print("map started loadedloading")}).disposed(by: disposeBag)
mapView.rx.didFinishLoadingMap
.asDriver().drive(onNext:{print("map finished loading")}).disposed(by: disposeBag)RxMKMapView requires Swift 5 and RxSwift 6.0. For the last RxSwift 5.x support, please use RxMKMapView 5.1.0.
RxMKMapView is available under the MIT license. See the LICENSE file for more info.