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

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
方法交互
下载开发文档
设置所有覆盖物在屏幕内显示

在屏幕内显示所有annotation

/**
*设置地图使显示区域显示所有annotations,如果数组中只有一个则直接设置地图中心为annotation的位置
*@param annotations 指定的标注
*@param animated 是否启动动画
*/
-(void)showannotations:(nsarray*)annotations animated:(bool)animated;

将当前polyline完整的显示在屏幕内

-(void)mapviewfitpolyline:(bmkpolyline*) polyline {
cgfloat ltx, lty, rbx, rby;
if(polyline.pointcount<1){
return;
}
bmkmappoint pt = polyline.points[0];
ltx = pt.x, lty = pt.y;
//左上方的点lefttop坐标(ltx,lty)
rbx = pt.x, rby = pt.y;
//右底部的点rightbottom坐标(rbx,rby)
for(int i =1; i < polyline.pointcount; i){
bmkmappoint pt = polyline.points[i];
if(pt.x< ltx){
ltx = pt.x;
}
if(pt.x> rbx){
rbx = pt.x;
}
if(pt.y< lty){
lty = pt.y;
}
if(pt.y> rby){
rby = pt.y;
}
}
bmkmaprect rect;
rect.origin=bmkmappointmake(ltx , lty);
rect.size=bmkmapsizemake(rbx - ltx, rby - lty);
//设置padding
uiedgeinsets padding =uiedgeinsetsmake(20,10,20,10);
[mapview fitvisiblemaprect:rect edgepadding:padding withanimated:yes];
}
设置地图操作区域距屏幕的边界

用户可以通过bmkmapview的mappadding属性来添加围绕地图边缘的内边距,设置后,地图仍充满整个屏幕,会根据mappadding调整logo、比例尺、指南针的位置,以及地图中心点。默认为uiedgeinsetszero。

mappadding设置示例代码如下:

// 表示距离屏幕上、左、下、右边距离,单位为屏幕坐标下的像素密度
_mapview.mappadding=uiedgeinsetsmake(0,0,44,0);

设置后效果如下:

注意:按照百度地图api使用条款您的应用不得删除或遮盖 百度地图logo或凯发app官方网站的版权声明。 地图内边距允许您在必要时重新定位这些元素。 如果您在地图底部显示自定义 ui,请在地图底部添加内边距,以使百度地图logo和法律声明始终可见。
设置地图显示范围

用户可以通过bmkmapview的setvisiblemaprect方法设置地图显示范围,并使maprect四周保留insets指定的边界区域。设置后地图继续充满整个屏幕,但地图会自动缩放地图层级,将地图覆盖物(annotation、routeoverlay等) 调整在保留insets指定的边界区域内显示。适用于应用界面上、下方有ui界面遮挡, 将路线规划结果或者覆盖物显示在指定的地图范围内的需求。

设置地图显示范围示例代码如下:

//设定地图的显示范围,并使maprect四周保留insets指定的边界区域
[_mapview setvisiblemaprect:bmkmaprectmake(32995300,35855667,1300,1900) edgepadding:uiedgeinsetsmake(20,0,40,0) animated:yes];
限制地图显示范围

用户可以通过bmkmapview的limitmapregion属性来限制地图显示范围,设置后手机屏幕仅显示设定的地图范围,当前不支持旋转地图的情况,请与"禁用旋转手势"配合使用

注意:当限制的地图范围的宽或者高,在指定层级时小于屏幕的大小,地图将自动放大层级显示,以控制显示范围。

使用场景:针对需要展示部分固定范围的地图,如希望设置仅显示北京市区地图,可使用此功能。

limitmapregion设置示例代码如下:

cllocationcoordinate2d center =cllocationcoordinate2dmake(39.924257,116.403263);
bmkcoordinatespan span =bmkcoordinatespanmake(0.038325,0.028045);
_mapview.limitmapregion=bmkcoordinateregionmake(center, span);////限制地图显示范围
_mapview.rotateenabled=no;//禁用旋转手势
控制底图标注

百度地图sdk支持设置底图poi的是否显示,用户可以通过bmkmapview的showmappoi属性来控制地图标注是否显示,默认显示底图标注。利用此属性可得到仅显示道路信息的地图。

showmappoi设置示例代码如下:

// 将底图标注设置为隐藏
_mapview.showmappoi=no;

设置后效果如下:

地图poi标签控制

百度地图sdk支持根据标签类型控制地图上poi标签的是否显示,用户可以通过bmkmapview的getpoitagenable接口来实现,默认全部显示。 相关接口

/// 用于控制poi标签显示的类别枚举
typedef enum{
kbmkpoitagtypeall,///< 显示poi标签 / 屏蔽所有poi标签
kbmkpoitagtypeepidemic,///< 疫情标签
kbmkpoitagtypetravel,///< 旅游出行标签
kbmkpoitagtypeshop ///< 店铺标签
}bmkpoitagtype;
/// 是否展示底图poi标签 since 6.5.5
/// @return bool
-(bool)getpoitagenable:(bmkpoitagtype)poitagtype;
/// 是否展示底图poi标签 since 6.5.5
/// @param enable 是否展示
/// @param poitagtype 标签类别
-(void)setpoitagenable:(bool)enable poitagtype:(bmkpoitagtype)poitagtype;

使用方式:

/// 创建地图后设置,关闭地图上所有poi标签
[_mapview setpoitagenable:nopoitagtype:kbmkpoitagtypeall];

效果对比图如下:

上一篇

事件交互

下一篇

元素压盖顺序

本篇文章对您是否有帮助?

网站地图