/*
|
* BMKMapView.h
|
* BMapKit
|
*
|
* Copyright 2011 Baidu Inc. All rights reserved.
|
*
|
*/
|
#import <BaiduMapAPI_Base/BMKBaseComponent.h>
|
#import "BMKAnnotation.h"
|
#import "BMKAnnotationView.h"
|
#import "BMKOverlayView.h"
|
#import "UIKit/UIKit.h"
|
#import "BMKMapStatus.h"
|
#import "BMKLocationViewDisplayParam.h"
|
#import "BMKHeatMap.h"
|
#import "BMKBaseIndoorMapInfo.h"
|
|
@protocol BMKMapViewDelegate;
|
|
///点击地图标注返回数据结构
|
@interface BMKMapPoi : NSObject
|
///点标注的名称
|
@property (nonatomic,strong) NSString* text;
|
///点标注的经纬度坐标
|
@property (nonatomic,assign) CLLocationCoordinate2D pt;
|
///点标注的uid,可能为空
|
@property (nonatomic,strong) NSString* uid;
|
@end
|
|
typedef enum {
|
BMKUserTrackingModeNone = 0, /// 普通定位模式
|
BMKUserTrackingModeHeading, /// 定位方向模式
|
BMKUserTrackingModeFollow, /// 定位跟随模式
|
BMKUserTrackingModeFollowWithHeading, /// 定位罗盘模式
|
} BMKUserTrackingMode;
|
|
///枚举:logo位置
|
typedef enum {
|
BMKLogoPositionLeftBottom = 0, /// 地图左下方
|
BMKLogoPositionLeftTop, /// 地图左上方
|
BMKLogoPositionCenterBottom, /// 地图中下方
|
BMKLogoPositionCenterTop, /// 地图中上方
|
BMKLogoPositionRightBottom, /// 地图右下方
|
BMKLogoPositionRightTop, /// 地图右上方
|
} BMKLogoPosition;
|
|
///枚举:室内图切换楼层结果
|
typedef enum {
|
BMKSwitchIndoorFloorSuccess = 0, /// 切换楼层成功
|
BMKSwitchIndoorFloorFailed, /// 切换楼层失败
|
BMKSwitchIndoorFloorNotFocused, /// 地图还未聚焦到传入的室内图
|
BMKSwitchIndoorFloorNotExist, /// 当前室内图不存在该楼层
|
} BMKSwitchIndoorFloorError;
|
|
///地图View类,使用此View可以显示地图窗口,并且对地图进行相关的操作
|
@interface BMKMapView : UIView
|
|
/// 地图View的Delegate,此处记得不用的时候需要置nil,否则影响内存的释放
|
@property (nonatomic, weak) id<BMKMapViewDelegate> delegate;
|
|
/// 当前地图类型,可设定为标准地图、卫星地图
|
@property (nonatomic) BMKMapType mapType;
|
|
/// 当前地图的经纬度范围,设定的该范围可能会被调整为适合地图窗口显示的范围
|
@property (nonatomic) BMKCoordinateRegion region;
|
|
/// 限制地图的显示范围(地图状态改变时,该范围不会在地图显示范围外。设置成功后,会调整地图显示该范围)
|
@property (nonatomic) BMKCoordinateRegion limitMapRegion;
|
|
/// 指南针的位置,设定坐标以BMKMapView左上角为原点,向右向下增长
|
@property (nonatomic) CGPoint compassPosition;
|
/// 指南针的宽高
|
@property (nonatomic, readonly) CGSize compassSize;
|
|
/// 当前地图的中心点,改变该值时,地图的比例尺级别不会发生变化
|
@property (nonatomic) CLLocationCoordinate2D centerCoordinate;
|
|
/// 地图比例尺级别,在手机上当前可使用的级别为3-21级
|
@property (nonatomic) float zoomLevel;
|
/// 地图的自定义最小比例尺级别
|
@property (nonatomic) float minZoomLevel;
|
/// 地图的自定义最大比例尺级别
|
@property (nonatomic) float maxZoomLevel;
|
|
/// 地图旋转角度,在手机上当前可使用的范围为-180~180度
|
@property (nonatomic) int rotation;
|
|
/// 地图俯视角度,在手机上当前可使用的范围为-45~0度
|
@property (nonatomic) int overlooking;
|
///设定地图是否现显示3D楼块效果
|
@property(nonatomic, getter=isBuildingsEnabled) BOOL buildingsEnabled;
|
///设定地图是否显示底图poi标注(不包含室内图标注),默认YES
|
@property(nonatomic, assign) BOOL showMapPoi;
|
///设定地图是否打开路况图层
|
@property(nonatomic, getter=isTrafficEnabled) BOOL trafficEnabled;
|
///设定地图是否打开百度城市热力图图层(百度自有数据),注:地图层级大于11时,可显示热力图
|
@property(nonatomic, getter=isBaiduHeatMapEnabled) BOOL baiduHeatMapEnabled;
|
|
///设定地图View能否支持所有手势操作
|
@property(nonatomic) BOOL gesturesEnabled;
|
///设定地图View能否支持用户多点缩放(双指)
|
@property(nonatomic, getter=isZoomEnabled) BOOL zoomEnabled;
|
///设定地图View能否支持用户缩放(双击或双指单击)
|
@property(nonatomic, getter=isZoomEnabledWithTap) BOOL zoomEnabledWithTap;
|
///设定地图View能否支持用户移动地图
|
@property(nonatomic, getter=isScrollEnabled) BOOL scrollEnabled;
|
///设定地图View能否支持俯仰角
|
@property(nonatomic, getter=isOverlookEnabled) BOOL overlookEnabled;
|
///设定地图View能否支持旋转
|
@property(nonatomic, getter=isRotateEnabled) BOOL rotateEnabled;
|
|
/// 设定地图是否回调force touch事件,默认为NO,仅适用于支持3D Touch的情况,开启后会回调 - mapview:onForceTouch:force:maximumPossibleForce:
|
@property(nonatomic) BOOL forceTouchEnabled;
|
|
/// 设定是否显式比例尺
|
@property (nonatomic) BOOL showMapScaleBar;
|
|
/// 比例尺的位置,设定坐标以BMKMapView左上角为原点,向右向下增长
|
@property (nonatomic) CGPoint mapScaleBarPosition;
|
|
/// 比例尺的宽高
|
@property (nonatomic, readonly) CGSize mapScaleBarSize;
|
|
/// logo位置,默认BMKLogoPositionLeftBottom
|
@property (nonatomic) BMKLogoPosition logoPosition;
|
|
///当前地图范围,采用直角坐标系表示,向右向下增长
|
@property (nonatomic) BMKMapRect visibleMapRect;
|
|
/**
|
*地图预留边界,默认:UIEdgeInsetsZero。
|
*注:设置后,会根据mapPadding调整logo、比例尺、指南针的位置。
|
* 当updateTargetScreenPtWhenMapPaddingChanged==YES时,地图中心(屏幕坐标:BMKMapStatus.targetScreenPt)跟着改变
|
*/
|
@property (nonatomic) UIEdgeInsets mapPadding;
|
///设置mapPadding时,地图中心(屏幕坐标:BMKMapStatus.targetScreenPt)是否跟着改变,默认YES
|
@property (nonatomic) BOOL updateTargetScreenPtWhenMapPaddingChanged;
|
|
///设定地图View能否支持以手势中心点为轴进行旋转和缩放
|
@property(nonatomic, getter=isChangeWithTouchPointCenterEnabled) BOOL ChangeWithTouchPointCenterEnabled;
|
|
/**
|
*设置自定义地图样式
|
*注:必须在BMKMapView对象初始化之前调用
|
*@param customMapStyleJsonFilePath 自定义样式文件所在路径,包含文件名
|
*/
|
+ (void)customMapStyle:(NSString*) customMapStyleJsonFilePath;
|
/**
|
* 自定义地图样式开关,影响所有BMKMapView对象
|
*@param enable 自定义地图样式是否生效
|
*/
|
+ (void)enableCustomMapStyle:(BOOL) enable;
|
|
/**
|
* 2.10.0起废弃,空实现,逻辑由地图SDK控制
|
*
|
*当应用即将后台时调用,停止一切调用opengl相关的操作。
|
*/
|
+(void)willBackGround __deprecated_msg("废弃方法(空实现),逻辑由地图SDK控制");
|
/**
|
* 2.10.0起废弃,空实现,逻辑由地图SDK控制
|
*
|
*当应用恢复前台状态时调用。
|
*/
|
+(void)didForeGround __deprecated_msg("废弃方法(空实现),逻辑由地图SDK控制");
|
/**
|
*当mapview即将被显式的时候调用,恢复之前存储的mapview状态。
|
*/
|
-(void)viewWillAppear;
|
|
/**
|
*当mapview即将被隐藏的时候调用,存储当前mapview的状态。
|
*/
|
-(void)viewWillDisappear;
|
|
/**
|
*强制刷新mapview
|
*/
|
- (void)mapForceRefresh;
|
|
/**
|
*放大一级比例尺
|
*@return 是否成功
|
*/
|
- (BOOL)zoomIn;
|
|
/**
|
*缩小一级比例尺
|
*@return 是否成功
|
*/
|
- (BOOL)zoomOut;
|
|
/**
|
*根据当前地图View的窗口大小调整传入的region,返回适合当前地图窗口显示的region,调整过程会保证中心点不改变
|
*@param region 待调整的经纬度范围
|
*@return 调整后适合当前地图窗口显示的经纬度范围
|
*/
|
- (BMKCoordinateRegion)regionThatFits:(BMKCoordinateRegion)region;
|
|
/**
|
*设定当前地图的显示范围
|
*@param region 要设定的地图范围,用经纬度的方式表示
|
*@param animated 是否采用动画效果
|
*/
|
- (void)setRegion:(BMKCoordinateRegion)region animated:(BOOL)animated;
|
|
/**
|
*设定地图中心点坐标
|
*@param coordinate 要设定的地图中心点坐标,用经纬度表示
|
*@param animated 是否采用动画效果
|
*/
|
- (void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated;
|
|
/**
|
*获得地图当前可视区域截图
|
*@return 返回view范围内的截取的UIImage
|
*/
|
-(UIImage*) takeSnapshot;
|
|
/**
|
*获得地图区域区域截图
|
*@return 返回指定区域的截取的UIImage
|
*/
|
-(UIImage*) takeSnapshot:(CGRect)rect;
|
|
/**
|
*设置罗盘的图片
|
*@param image 设置的图片
|
*/
|
- (void)setCompassImage:(UIImage *)image;
|
|
/**
|
*设定当前地图的显示范围,采用直角坐标系表示
|
*@param mapRect 要设定的地图范围,用直角坐标系表示
|
*@param animate 是否采用动画效果
|
*/
|
- (void)setVisibleMapRect:(BMKMapRect)mapRect animated:(BOOL)animate;
|
|
/**
|
*根据当前地图View的窗口大小调整传入的mapRect,返回适合当前地图窗口显示的mapRect,调整过程会保证中心点不改变
|
*@param mapRect 待调整的地理范围,采用直角坐标系表示
|
*@return 调整后适合当前地图窗口显示的地理范围,采用直角坐标系
|
*/
|
- (BMKMapRect)mapRectThatFits:(BMKMapRect)mapRect;
|
|
/**
|
*设定地图的显示范围,并使mapRect四周保留insets指定的边界区域
|
*@param mapRect 要设定的地图范围,用直角坐标系表示
|
*@param insets 指定的四周边界大小
|
*@param animate 是否采用动画效果
|
*/
|
- (void)setVisibleMapRect:(BMKMapRect)mapRect edgePadding:(UIEdgeInsets)insets animated:(BOOL)animate;
|
|
/**
|
*根据当前地图View的窗口大小调整传入的mapRect,返回适合当前地图窗口显示的mapRect,并且在该mapRect四周保留insets指定的边界区域
|
*@param mapRect 待调整的地理范围,采用直角坐标系表示
|
×@param insets mapRect四周要预留的边界大小
|
*@return 调整后适合当前地图窗口显示的地理范围,采用直角坐标系
|
*/
|
- (BMKMapRect)mapRectThatFits:(BMKMapRect)mapRect edgePadding:(UIEdgeInsets)insets;
|
|
/**
|
*将经纬度坐标转换为View坐标
|
*@param coordinate 待转换的经纬度坐标
|
*@param view 指定相对的View
|
*@return 转换后的View坐标
|
*/
|
- (CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(UIView *)view;
|
|
/**
|
*将View坐标转换成经纬度坐标
|
*@param point 待转换的View坐标
|
*@param view point坐标所在的view
|
*@return 转换后的经纬度坐标
|
*/
|
- (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view;
|
|
/**
|
*将经纬度矩形区域转换为View矩形区域
|
*@param region 待转换的经纬度矩形
|
*@param view 指定相对的View
|
*@return 转换后的View矩形区域
|
*/
|
- (CGRect)convertRegion:(BMKCoordinateRegion)region toRectToView:(UIView *)view;
|
|
/**
|
*将View矩形区域转换成经纬度矩形区域
|
*@param rect 待转换的View矩形区域
|
*@param view rect坐标所在的view
|
*@return 转换后的经纬度矩形区域
|
*/
|
- (BMKCoordinateRegion)convertRect:(CGRect)rect toRegionFromView:(UIView *)view;
|
|
/**
|
*将直角地理坐标矩形区域转换为View矩形区域
|
*@param mapRect 待转换的直角地理坐标矩形
|
*@param view 指定相对的View
|
*@return 转换后的View矩形区域
|
*/
|
- (CGRect)convertMapRect:(BMKMapRect)mapRect toRectToView:(UIView *)view;
|
|
/**
|
*将View矩形区域转换成直角地理坐标矩形区域
|
*@param rect 待转换的View矩形区域
|
*@param view rect坐标所在的view
|
*@return 转换后的直角地理坐标矩形区域
|
*/
|
- (BMKMapRect)convertRect:(CGRect)rect toMapRectFromView:(UIView *)view;
|
|
/**
|
*将BMKMapPoint转换为opengles可以直接使用的坐标
|
@param mapPoint BMKMapPoint坐标
|
@return opengles 直接支持的坐标
|
*/
|
- (CGPoint)glPointForMapPoint:(BMKMapPoint)mapPoint;
|
|
/**
|
*批量将BMKMapPoint转换为opengles可以直接使用的坐标
|
@param mapPoints BMKMapPoint坐标数据指针
|
@param count 个数,count不能大于数组长度
|
@return opengles 直接支持的坐标数据指针(需要调用者手动释放)
|
*/
|
- (CGPoint *)glPointsForMapPoints:(BMKMapPoint *)mapPoints count:(NSUInteger)count;
|
|
/**
|
* 设置地图中心点在地图中的屏幕坐标位置
|
* @param ptInScreen 要设定的地图中心点位置,为屏幕坐标,设置的中心点不能超过屏幕范围,否则无效
|
*/
|
- (void)setMapCenterToScreenPt:(CGPoint)ptInScreen;
|
|
/**
|
* 获取地图状态
|
*@return 返回地图状态信息
|
*/
|
- (BMKMapStatus*)getMapStatus;
|
|
/**
|
* 设置地图状态
|
* @param [in] mapStatus 地图状态信息
|
*/
|
- (void)setMapStatus:(BMKMapStatus*)mapStatus;
|
|
/**
|
* 设置地图状态
|
* @param [in] mapStatus 地图状态信息
|
* @param [in] bAnimation 是否需要动画效果,true:需要做动画
|
*/
|
- (void)setMapStatus:(BMKMapStatus*)mapStatus withAnimation:(BOOL)bAnimation;
|
|
/**
|
* 设置地图状态
|
* @param [in] mapStatus 地图状态信息
|
* @param [in] bAnimation 是否需要动画效果,true:需要做动画
|
* @param [in] ulDuration 指定动画时间,单位:ms
|
*/
|
- (void)setMapStatus:(BMKMapStatus*)mapStatus withAnimation:(BOOL)bAnimation withAnimationTime:(int)ulDuration;
|
|
/**
|
* 判断当前图区是否支持百度热力图(百度自有数据)
|
* @return 支持返回YES,否则返回NO
|
*/
|
- (BOOL)isSurpportBaiduHeatMap;
|
|
@end
|
|
@interface BMKMapView (IndoorMapAPI)
|
|
/// 设定地图是否显示室内图(包含室内图标注),默认不显示
|
@property (nonatomic, assign) BOOL baseIndoorMapEnabled;
|
|
/// 设定室内图标注是否显示,默认YES,仅当显示室内图(baseIndoorMapEnabled为YES)时生效
|
@property (nonatomic, assign) BOOL showIndoorMapPoi;
|
|
/**
|
* 设置室内图楼层
|
* @param strFloor 楼层
|
* @param strID 室内图ID
|
* @return 切换结果
|
*/
|
- (BMKSwitchIndoorFloorError)switchBaseIndoorMapFloor:(NSString*)strFloor withID:(NSString*)strID;
|
|
/**
|
* 获取当前聚焦的室内图信息
|
* @return 当前聚焦的室内图信息。没有聚焦的室内图,返回nil
|
*/
|
- (BMKBaseIndoorMapInfo*)getFocusedBaseIndoorMapInfo;
|
|
@end
|
|
@interface BMKMapView (LocationViewAPI)
|
|
/// 设定是否显示定位图层
|
@property (nonatomic) BOOL showsUserLocation;
|
|
/// 设定定位模式,取值为:BMKUserTrackingMode
|
@property (nonatomic) BMKUserTrackingMode userTrackingMode;
|
|
/// 返回定位坐标点是否在当前地图可视区域内
|
@property (nonatomic, readonly, getter=isUserLocationVisible) BOOL userLocationVisible;
|
|
/**
|
*动态定制我的位置样式
|
* @param [in] locationViewDisplayParam 样式参数
|
*/
|
- (void)updateLocationViewWithParam:(BMKLocationViewDisplayParam*)locationViewDisplayParam;
|
|
/**
|
*动态更新我的位置数据
|
* @param [in] userLocation 定位数据
|
*/
|
-(void)updateLocationData:(BMKUserLocation*)userLocation;
|
@end
|
|
@interface BMKMapView (AnnotationAPI)
|
|
/// 当前地图View的已经添加的标注数组
|
@property (nonatomic, readonly) NSArray *annotations;
|
|
//设定是否总让选中的annotaion置于最前面
|
@property (nonatomic, assign) BOOL isSelectedAnnotationViewFront;
|
|
/**
|
*向地图窗口添加标注,需要实现BMKMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View
|
*@param annotation 要添加的标注
|
*/
|
- (void)addAnnotation:(id <BMKAnnotation>)annotation;
|
|
/**
|
*向地图窗口添加一组标注,需要实现BMKMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View
|
*@param annotations 要添加的标注数组
|
*/
|
- (void)addAnnotations:(NSArray *)annotations;
|
|
/**
|
*移除标注
|
*@param annotation 要移除的标注
|
*/
|
- (void)removeAnnotation:(id <BMKAnnotation>)annotation;
|
|
/**
|
*移除一组标注
|
*@param annotation 要移除的标注数组
|
*/
|
- (void)removeAnnotations:(NSArray *)annotations;
|
|
/**
|
*查找指定标注对应的View,如果该标注尚未显示,返回nil
|
*@param annotation 指定的标注
|
*@return 指定标注对应的View
|
*/
|
- (BMKAnnotationView *)viewForAnnotation:(id <BMKAnnotation>)annotation;
|
|
/**
|
*根据指定标识查找一个可被复用的标注View,一般在delegate中使用,用此函数来代替新申请一个View
|
*@param identifier 指定标识
|
*@return 返回可被复用的标注View
|
*/
|
- (BMKAnnotationView *)dequeueReusableAnnotationViewWithIdentifier:(NSString *)identifier;
|
|
/**
|
*选中指定的标注,本版暂不支持animate效果
|
*@param annotation 指定的标注
|
*@param animated 本版暂不支持
|
*/
|
- (void)selectAnnotation:(id <BMKAnnotation>)annotation animated:(BOOL)animated;
|
|
/**
|
*取消指定的标注的选中状态,本版暂不支持animate效果
|
*@param annotation 指定的标注
|
*@param animated 本版暂不支持
|
*/
|
- (void)deselectAnnotation:(id <BMKAnnotation>)annotation animated:(BOOL)animated;
|
|
/**
|
*设置地图使显示区域显示所有annotations,如果数组中只有一个则直接设置地图中心为annotation的位置
|
*@param annotations 指定的标注
|
*@param animated 是否启动动画
|
*/
|
- (void)showAnnotations:(NSArray *)annotations animated:(BOOL)animated;
|
|
/**
|
*获取矩形区域内的所有annotations
|
*@param bounds 矩形区域(经纬度)
|
*@return 该矩形区域内的所有annotations
|
*/
|
- (NSArray *)annotationsInCoordinateBounds:(BMKCoordinateBounds) bounds;
|
|
@end
|
///地图View类(和Overlay操作相关的接口)
|
@interface BMKMapView (OverlaysAPI)
|
|
/**
|
*向地图窗口添加Overlay,需要实现BMKMapViewDelegate的-mapView:viewForOverlay:函数来生成标注对应的View
|
*@param overlay 要添加的overlay
|
*/
|
- (void)addOverlay:(id <BMKOverlay>)overlay;
|
|
/**
|
*向地图窗口添加一组Overlay,需要实现BMKMapViewDelegate的-mapView:viewForOverlay:函数来生成标注对应的View
|
*@param overlays 要添加的overlay数组
|
*/
|
- (void)addOverlays:(NSArray *)overlays;
|
|
/**
|
*移除Overlay
|
*@param overlay 要移除的overlay
|
*/
|
- (void)removeOverlay:(id <BMKOverlay>)overlay;
|
|
/**
|
*移除一组Overlay
|
*@param overlays 要移除的overlay数组
|
*/
|
- (void)removeOverlays:(NSArray *)overlays;
|
|
/**
|
*在指定的索引处添加一个Overlay
|
*@param overlay 要添加的overlay
|
*@param index 指定的索引
|
*/
|
- (void)insertOverlay:(id <BMKOverlay>)overlay atIndex:(NSUInteger)index;
|
|
/**
|
*在交换指定索引处的Overlay
|
*@param index1 索引1
|
*@param index2 索引2
|
*/
|
- (void)exchangeOverlayAtIndex:(NSUInteger)index1 withOverlayAtIndex:(NSUInteger)index2;
|
|
/**
|
*在指定的Overlay之上插入一个overlay
|
*@param overlay 带添加的Overlay
|
*@param sibling 用于指定相对位置的Overlay
|
*/
|
- (void)insertOverlay:(id <BMKOverlay>)overlay aboveOverlay:(id <BMKOverlay>)sibling;
|
|
/**
|
*在指定的Overlay之下插入一个overlay
|
*@param overlay 带添加的Overlay
|
*@param sibling 用于指定相对位置的Overlay
|
*/
|
- (void)insertOverlay:(id <BMKOverlay>)overlay belowOverlay:(id <BMKOverlay>)sibling;
|
|
/// 当前mapView中已经添加的Overlay数组
|
@property (nonatomic, readonly) NSArray *overlays;
|
|
/**
|
*查找指定overlay对应的View,如果该View尚未创建,返回nil
|
*@param overlay 指定的overlay
|
*@return 指定overlay对应的View
|
*/
|
- (BMKOverlayView *)viewForOverlay:(id <BMKOverlay>)overlay;
|
|
@end
|
@interface BMKMapView (HeatMapAPI)
|
|
/**
|
*添加热力图
|
* @param [BMKHeatMap*] heatMap 热力图绘制和显示数据
|
*/
|
- (void)addHeatMap:(BMKHeatMap*)heatMap;
|
|
/**
|
*移除热力图
|
*/
|
- (void)removeHeatMap;
|
|
@end
|
|
/// MapView的Delegate,mapView通过此类来通知用户对应的事件
|
@protocol BMKMapViewDelegate <NSObject>
|
@optional
|
|
/**
|
*地图初始化完毕时会调用此接口
|
*@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 是否动画
|
*/
|
- (void)mapView:(BMKMapView *)mapView regionDidChangeAnimated:(BOOL)animated;
|
|
/**
|
*根据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 views 选中的annotation views
|
*/
|
- (void)mapView:(BMKMapView *)mapView didSelectAnnotationView:(BMKAnnotationView *)view;
|
|
/**
|
*当取消选中一个annotation views时,调用此接口
|
*@param mapView 地图View
|
*@param views 取消选中的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)newState
|
fromOldState:(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;
|
|
/**
|
*点中底图标注后会回调此接口
|
*@param mapview 地图View
|
*@param mapPoi 标注点信息
|
*/
|
- (void)mapView:(BMKMapView *)mapView onClickedMapPoi:(BMKMapPoi*)mapPoi;
|
|
/**
|
*点中底图空白处会回调此接口
|
*@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
|
*/
|
- (void)mapStatusDidChanged:(BMKMapView *)mapView;
|
|
/**
|
*地图进入/移出室内图会调用此接口
|
*@param mapview 地图View
|
*@param flag YES:进入室内图; NO:移出室内图
|
*@param info 室内图信息
|
*/
|
- (void)mapview:(BMKMapView *)mapView baseIndoorMapWithIn:(BOOL)flag baseIndoorMapInfo:(BMKBaseIndoorMapInfo *)info;
|
|
@end
|