百度地图支持地图状态,手势交互,和地图覆盖物交互等事件的监听,并提供了相应的事件监听方法。
地图状态事件监听:
/***地图状态改变完成后会调用此接口*@param mapView 地图View*/- (void)mapStatusDidChanged:(BMKMapView *)mapView;/***地图进入/移出室内图会调用此接口*@param mapView 地图View*@param flag YES:进入室内图; NO:移出室内图*@param info 室内图信息*/- (void)mapview:(BMKMapView *)mapView baseIndoorMapWithIn:(BOOL)flag baseIndoorMapInfo:(BMKBaseIndoorMapInfo *)info;/***地图初始化完毕时会调用此接口*@param mapView 地图View*/- (void)mapViewDidFinishLoading:(BMKMapView *)mapView;/***地图渲染完毕后会调用此接口*@param mapView 地图View*/- (void)mapViewDidFinishRendering:(BMKMapView *)mapView;/***地图渲染每一帧画面过程中,以及每次需要重绘地图时(例如添加覆盖物)都会调用此接口*@param mapView 地图View*@param status 此时地图的状态*/- (void)mapView:(BMKMapView *)mapView onDrawMapFrame:(BMKMapStatus*)status;/***地图区域即将改变时会调用此接口*@param mapView 地图View*@param animated 是否动画*/- (void)mapView:(BMKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;/***地图区域即将改变时会调用此接口*@param mapView 地图View*@param animated 是否动画*@param reason 地区区域改变的原因*/- (void)mapView:(BMKMapView *)mapView regionWillChangeAnimated:(BOOL)animated reason:(BMKRegionChangeReason)reason;/***地图区域改变完成后会调用此接口*@param mapView 地图View*@param animated 是否动画*/- (void)mapView:(BMKMapView *)mapView regionDidChangeAnimated:(BOOL)animated;/***地图区域改变完成后会调用此接口*@param mapView 地图View*@param animated 是否动画*@param reason 地区区域改变的原因*/- (void)mapView:(BMKMapView *)mapView regionDidChangeAnimated:(BOOL)animated reason:(BMKRegionChangeReason)reason;
地图手势交互事件监听:
/***点中底图空白处会回调此接口*@param mapView 地图View*@param coordinate 空白处坐标点的经纬度*/- (void)mapView:(BMKMapView *)mapView onClickedMapBlank:(CLLocationCoordinate2D)coordinate;/***双击地图时会回调此接口*@param mapView 地图View*@param coordinate 返回双击处坐标点的经纬度*/- (void)mapview:(BMKMapView *)mapView onDoubleClick:(CLLocationCoordinate2D)coordinate;/***长按地图时会回调此接口*@param mapView 地图View*@param coordinate 返回长按事件坐标点的经纬度*/- (void)mapview:(BMKMapView *)mapView onLongClick:(CLLocationCoordinate2D)coordinate;/***3DTouch 按地图时会回调此接口(仅在支持3D Touch,且fouchTouchEnabled属性为YES时,会回调此接口)*@param mapView 地图View*@param coordinate 触摸点的经纬度*@param force 触摸该点的力度(参考UITouch的force属性)*@param maximumPossibleForce 当前输入机制下的最大可能力度(参考UITouch的maximumPossibleForce属性)*/- (void)mapview:(BMKMapView *)mapView onForceTouch:(CLLocationCoordinate2D)coordinate force:(CGFloat)force maximumPossibleForce:(CGFloat)maximumPossibleForce;
地图覆盖物交互事件监听:
/***点中底图标注后会回调此接口*@param mapView 地图View*@param mapPoi 标注点信息*/- (void)mapView:(BMKMapView *)mapView onClickedMapPoi:(BMKMapPoi*)mapPoi;/***根据anntation生成对应的View*@param mapView 地图View*@param annotation 指定的标注*@return 生成的标注View*/- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id <BMKAnnotation>)annotation;/***当mapView新添加annotation views时,调用此接口*@param mapView 地图View*@param views 新添加的annotation views*/- (void)mapView:(BMKMapView *)mapView didAddAnnotationViews:(NSArray *)views;/***当选中一个annotation views时,调用此接口*@param mapView 地图View*@param view 选中的annotation views*/- (void)mapView:(BMKMapView *)mapView didSelectAnnotationView:(BMKAnnotationView *)view;/***当取消选中一个annotation views时,调用此接口*@param mapView 地图View*@param view 取消选中的annotation views*/- (void)mapView:(BMKMapView *)mapView didDeselectAnnotationView:(BMKAnnotationView *)view;/***拖动annotation view时,若view的状态发生变化,会调用此函数。ios3.2以后支持*@param mapView 地图View*@param view annotation view*@param newState 新状态*@param oldState 旧状态*/- (void)mapView:(BMKMapView *)mapView annotationView:(BMKAnnotationView *)view didChangeDragState:(BMKAnnotationViewDragState)newStatefromOldState:(BMKAnnotationViewDragState)oldState;/***当点击annotation view弹出的泡泡时,调用此接口*@param mapView 地图View*@param view 泡泡所属的annotation view*/- (void)mapView:(BMKMapView *)mapView annotationViewForBubble:(BMKAnnotationView *)view;/***根据overlay生成对应的View*@param mapView 地图View*@param overlay 指定的overlay*@return 生成的覆盖物View*/- (BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id <BMKOverlay>)overlay;/***当mapView新添加overlay views时,调用此接口*@param mapView 地图View*@param overlayViews 新添加的overlay views*/- (void)mapView:(BMKMapView *)mapView didAddOverlayViews:(NSArray *)overlayViews;/***点中覆盖物后会回调此接口,目前只支持点中BMKPolylineView时回调*@param mapView 地图View*@param overlayView 覆盖物view信息*/- (void)mapView:(BMKMapView *)mapView onClickedBMKOverlayView:(BMKOverlayView *)overlayView;
上一篇
下一篇
本篇文章对您是否有帮助?