iossdk | 百度地图api sdk-凯发k8官方旗舰厅

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
更新时间:2020-06-23
地图控件

百度ios地图sdk提供的控件有地图logo、指南针、比例尺。
地图logo

百度ios地图sd 的 logo 默认在左下角显示,不可以移除,不允许遮挡。

1.改变地图logo位置 百度ios地图sd使用枚举类型控制显示的位置,共支持6个显示位置(左下,中下,右下,左上,中上,右上),改变地图logo的位置的方法如下:

objective-c
swift
[_mapview setlogoposition: bmklogopositionrightbottom];
mapview?.logoposition = bmklogopositionrightbottom

2.避免地图logo被ui遮挡的方法 可通过设置地图边界区域的方法来避免,如下代码:

objective-c
swift
/**
 *地图预留边界,默认:uiedgeinsetszero。
 *注:设置后,会根据mappadding调整logo、比例尺、指南针的位置。
 *   当updatetargetscreenptwhenmappaddingchanged==yes时,地图中心(屏幕坐标:bmkmapstatus.targetscreenpt)跟着改变
 */
[_mapview setmappadding:uiedgeinsetsmake(0, 0, 30, 0)];
/**
 *地图预留边界,默认:uiedgeinsetszero。
 *注:设置后,会根据mappadding调整logo、比例尺、指南针的位置。
 *   当updatetargetscreenptwhenmappaddingchanged==yes时,地图中心(屏幕坐标:bmkmapstatus.targetscreenpt)跟着改变
 */
mapview?.mappadding = uiedgeinsets.init(top: 0, left: 0, bottom: 30, right: 0)

指南针

指南针默认为隐藏状态,当地图旋转或俯仰角有变化时会显示,点击指南针图标,可快速使地图变为正常状态,同时指南针隐藏;
1.设置指南针位置

objective-c
swift
[_mapview setcompassposition:cgpointmake(100, 100)];
mapview?.compassposition = cgpoint.init(x: 100, y:100)

2.获得指南针宽高(只读)

objective-c
swift
//width:39;height:39
cgsize compasssize =  self.mapview.compasssize;
//width:39;height:39
let compasssize = mapview?.compasssize

3.设置指南针图片

objective-c
swift
[_mapview setcompassimage:[uiimage imagenamed:@"compass"]];
mapview?.setcompassimage(uiimage.init(named: "compass"))

自定义指南针效果如下:

比例尺控件

地图比例尺级别,在手机上当前可使用的级别为4-21级。
1.显示比例尺

objective-c
swift
_mapview.showmapscalebar = yes;
mapview.showmapscalebar = true

2.设置比例尺位置

objective-c
swift
_mapview.mapscalebarposition = cgpointmake(200, 20)
mapview?.mapscalebarposition = cgpoint.init(x: 200, y: 20)

3.获取比例尺宽高

objective-c
swift
//不同级别下,宽高不同
cgsize mapscalebarsize = self.mapview.mapscalebarsize;
//不同级别下,宽高不同
let mapscalebarsize = mapview?.mapscalebarsize

自定义比例尺显示效果如下:

地图手势
手势
bmkmapview属性控制手势开启关闭
单个手指拖动或滑动地图 scrollenabled
双指捏合、拉伸缩放地图 zoomenabled
单指双击放大地图、双指单击缩小地图 zoomenabledwithtap
双指向上或向下滑动地图俯仰角 overlookenabled
双指旋转地图 rotateenabled
单指重压地图 onforcetouch
禁用所有手势 gesturesenabled

地图平移

用单个手指拖动地图四处滚动(平移)或用单个手指滑动地图(动画效果),通过调用bmkmapview的 scrollenabled 属性控制是否启用或禁用平移的功能,默认开启。

禁用平移手势示例代码如下:

objective-c
swift
_mapview.scrollenabled = no;
mapview?.isscrollenabled = false

禁用平移手势后,可以通过代码设置地图中心点经纬度来实现地图的平移,示例代码如下:

objective-c
swift
[_mapview setcentercoordinate:cllocationcoordinate2dmake(39.924257, 116.403263)];
mapview?.centercoordinate = cllocationcoordinate2dmake(39.924257, 116.403263)

地图缩放

缩放手势可改变地图的缩放级别,地图响应的缩放手势有两种:单指双击地图(放大)、双指单击地图(缩小),双指捏合、拉伸。

通过调用bmkmapview的 zoomenabled和zoomenabledwithtap属性控制是否启用或禁用缩放手势,默认开启。如果启用,用户可以单指双击放大地图、双指单击缩小地图或双指捏合、拉伸缩放地图视图。禁用缩放手势的代码如下:

objective-c
swift
//禁止双指拉伸缩放地图
_mapview.zoomenabled = no;
//禁止单指双击缩放地图
_mapview.zoomenabledwithtap= no;
//禁止双指拉伸缩放地图
mapview?.iszoomenabled = false
//禁止单指双击缩放地图
mapview?.iszoomenabledwithtap = false

禁用缩放手势后,可以通过代码设置地图地图比例尺级别来实现地图的缩放,示例代码如下:

objective-c
swift
[_mapview setzoomlevel:17];
mapview?.zoomlevel = 17

地图俯视(3d)

用户可以在地图上放置两个手指,移动它们一起向下或向上去增加或减小倾斜角。

通过调用bmkmapview的属性overlookenabled控制是否启用或禁用俯视(3d)功能,默认开启。如果启用,则用户可使用双指 向下或向上滑动到俯视图。

禁止俯视手势的代码如下:

objective-c
swift
_mapview.overlookenabled= no;
mapview?.isoverlookenabled = false

禁用俯视手势后,可以通过代码设置地图地图俯仰角度来实现地图的俯视,示例代码如下:

objective-c
swift
//overlooking值的范围为-45~0度
[_mapview setoverlooking:-10];
//overlooking值的范围为-45~0度
mapview?.overlooking = -10

地图旋转

用户可以通过两个手指在地图上转动来旋转地图。

通过调用bmkmapview的属性rotateenabled控制是否启用或禁用地图旋转功能,默认开启。如果启用,则用户可使用双指 旋转来旋转地图。

禁止地图旋转手势的代码如下:

objective-c
swift
_mapview.rotateenabled= no;
mapview?.isrotateenabled = false

禁用旋转手势后,可以通过代码设置地图地图旋转角来实现地图的旋转,示例代码如下:

objective-c
swift
//rotation值的范围为-180~180度
[_mapview setrotation:90];
//rotation值的范围为-180~180度
mapview?.rotation = 90

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

禁止所有手势的代码如下:

objective-c
swift
_mapview.gesturesenabled= no;
mapview?.gesturesenabled = false

3d touch

用户单指重压地图会回调bmkmapviewdelegate中的3dtouch代理方法(- mapview:onforcetouch:force:maximumpossibleforce:)。

通过调用bmkmapview的属性forcetouchenabled控制是否启用3dtouch能力,默认开启。

禁止地图3dtouch能力的代码如下:

objective-c
swift
_mapview.onforcetouch = no;
mapview?.forcetouchenabled = false

代理方法如下:

objective-c
swift
/**
 *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;
/**
 *3dtouch 按地图时会回调此接口(仅在支持3d touch,且fouchtouchenabled属性为yes时,会回调此接口)
 *@param mapview 地图view
 *@param coordinate 触摸点的经纬度
 *@param force 触摸该点的力度(参考uitouch的force属性)
 *@param maximumpossibleforce 当前输入机制下的最大可能力度(参考uitouch的maximumpossibleforce属性)
 */
func mapview(_ mapview: bmkmapview!, onforcetouch coordinate: cllocationcoordinate2d, force: cgfloat, maximumpossibleforce: cgfloat) {
    
}
  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消

"));
网站地图