浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

iOS 地图SDK

百度地图SDK是一套应用程序接口, 通过调用地图SDK接口,开发者可以轻松访问百度地图的服务和数据,构建功能丰富、交互性强的地图类应用程序。

地图控件

地图Logo

默认在左下角显示,不可以移除,不允许遮挡。

1、改变地图Logo位置:通过 [_mapView setLogoPosition: BMKLogoPositionLeftBottom];方法,使用枚举类型控制显示的位置,共支持6个显示位置(左下,中下,右下,左上,中上,右上)。

2、地图Logo不允许遮挡,可通过[_mapView setMapPadding: UIEdgeInsets];方法可以设置地图边界区域,来避免UI遮挡。

指南针

指南针默认为开启状态,可以关闭显示 。

比例尺

比例尺默认为开启状态,可以关闭显示。同时支持设置最大比例尺级别MaxZoomLevel和最小比例尺级别minZoomLevel。

地图手势

地图平移

用手指拖动地图四处滚动(平移)或用手指滑动地图(动画效果):

通过调用BMKMapView的 scrollEnabled 属性控制是否启用或禁用平移的功能,默认开启。

示例代码如下:

_mapView.scrollEnabled = NO; 

地图滑动功能拓展:

地图平移时,缩放级别不变,可通过改变地图的中心点来移动地图,示例代码如下:

[_mapView setCenterCoordinate:center animated:YES];

地图缩放

缩放手势可改变地图的缩放级别,地图响应的手势如下:

• 双击地图可以使缩放级别增加1 (zoomEnabledWithTap)

• 两个手指捏/拉伸 (zoomEnabled)

通过调用BMKMapView的 zoomEnabled和zoomEnabledWithTap属性控制是否启用或禁用缩放手势,默认开启。如果启用,用户可以双指点击或拉伸地图视图。禁用缩放手势的代码如下:

_mapView.zoomEnabled = NO;//禁止拉伸缩放地图
_mapView. zoomEnabledWithTap= NO;//禁止双击缩放地图

地图俯视(3D)

用户可以在地图上放置两个手指,移动它们一起向下或向上去增加或减小倾斜角。 通过调用BMKMapView的属性overlookEnabled控制是否启用或禁用俯视(3D)功能,默认开启。如果启用,则用户可使用双指 向下或向上滑动到俯视图。

_mapView. overlookEnabled= NO; //禁止俯视手势

地图旋转

您可以用两个手指在地图上转动。 通过调用BMKMapView的属性rotateEnabled控制是否启用或禁用地图旋转功能,默认开启。如果启用,则用户可使用双指 旋转来旋转地图。

_mapView.rotateEnabled= NO;    //NO表示禁用旋转手势,YES表示开启

禁止所有手势

通过调用BMKMapView的属性gesturesEnabled控制是否一并禁止所有手势,默认关闭。如果启用,所有手势都将被禁用。

_mapView. gesturesEnabled= NO;    //NO表示禁用所有手势,YES表示开启
3D Touch

V2.10.0起,支持3D Touch。 3D Touch按地图时会回调此接口(仅在支持3D Touch,且fouchTouchEnabled属性为YES时,会回调此接口)

在BMKMapView中新增属性:

@property(nonatomic) BOOL forceTouchEnabled; 
/// 设定地图是否回调force touch事件,默认为NO,仅适用于支持3D Touch的情况,开启后会回调
- mapview:onForceTouch:force:maximumPossibleForce:

BMKMapViewDelegate 新增:

/**
 *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;