首先所有可以成为覆盖物的对象必须遵守MKOverlay这个协议,通过 - (void)addOverlay:(id <MKOverlay>)overlay; 将覆盖物添加在地图上,然后地图会调用代理方法 -(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay; 对覆盖物进行绘制 addSubview:_mapView]; } //覆盖物绘制的代理 -(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay self.view addSubview:_mapView]; } -(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay self.view addSubview:_mapView]; } -(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay
取消选中一个标注 @property (nonatomic, copy) NSArray *selectedAnnotations; 选中标注的数组 - (void)addOverlay:(id <MKOverlay overlay; 移除一个地图覆盖物 - (void)removeOverlays:(NSArray *)overlays; 移除一组地图覆盖物 - (void)insertOverlay:(id <MKOverlay >)overlay aboveOverlay:(id <MKOverlay>)sibling; 将一个地图覆盖物插在到某个覆盖物之上 - (void)insertOverlay:(id <MKOverlay >)overlay belowOverlay:(id <MKOverlay>)sibling; 将一个地图覆盖物插入到某个覆盖物之下 - (void)exchangeOverlay:(id <MKOverlay >)overlay1 withOverlay:(id <MKOverlay>)overlay2; 替换一个地图覆盖物 @property (nonatomic, readonly) NSArray *overlays
MKMapViewDelegate 147 148 // 过时 149 //- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay 绘制路线时就会调用(添加遮盖时就会调用) 152 - (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay
}]; } //地图覆盖物的代理方法 -(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay
当给地图添加了遮盖物的时候就会用此方法,设置一个渲染物对象添加到地图上 - (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay
MapView) { self.parent = parent } func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay