本章节将对各种地图交互方法的设置做介绍,包括改变地图缩放等级、设置地图操作区域和屏幕的边的距离,设置地图显示范围、改变地图类型和控件显示状态、改变地图手势对的中心点、隐藏地图标注等。
根据场景的不同可以分别通过mapstatusupdatefactory类的zoomto、zoomin、zoomout以及zoomby四种方法改变地图缩放级别。示例如下:
//直接缩放至缩放级别16mbaidumap.setmapstatus(mapstatusupdatefactory.zoomto(16));//使缩放级别增大一级mbaidumap.setmapstatus(mapstatusupdatefactory.zoomin());//使缩放级别减小一级mbaidumap.setmapstatus(mapstatusupdatefactory.zoomout());//在当前的缩放级别上增加或减小具体的缩放级别// 4 在当前的缩放级别上增加4mbaidumap.setmapstatus(mapstatusupdatefactory.zoomby(4));// -4 在当前的缩放级别上减小4mbaidumap.setmapstatus(mapstatusupdatefactory.zoomby(-4));
此外,上述示例代码中setmapstatus()方法是以直接跳变的效果改变地图缩放级别,开发者可以使用animatemapstatus()方法实现地图缩放级别改变的渐变动画效果。
注意:当设置的地图缩放级别超出sdk支持的最大或最小级别时对应以最大或最小缩放级别显示。
支持利用setviewpadding方法围绕地图边缘添加屏幕内边距。地图将保持原来的布局,但地图logo、比例尺、指南针以及缩放按钮等控件将调整到改变后的操作区域内显示。可以参考uisettingdemo。
适用于不希望操作控件被ui遮挡的情况。示例如下:
mbaidumap.setviewpadding(int left,int top, int right, int bottom);
setviewpadding方法在地图加载完成后生效,可以通过onmaploadedcallback.onmaploaded()回调接口来监听是否加载完成。
注意:根据百度地图api使用条款您的应用不得删除或覆盖百度地图logo或凯发app官方网站的版权声明。地图内边距允许您在必要时重新定位这些元素,若您需要在地图布局顶底部显示自定义ui,请设置内边距以保证百度地图logo和凯发app官方网站的版权声明始终可见。
可以通过如下两种方法来设置地图显示范围。
方法一
// bounds 设置显示在屏幕中的地图地理范围mbaidumap.setmapstatus(mapstatusupdatefactory.newlatlngbounds(bounds));
其中latlngbounds对象通过latlngbounds.builder()类使用西南和东北坐标点构造。
方法二
// bounds 设置显示在屏幕中的地图地理范围mbaidumap.setmapstatus(mapstatusupdatefactory.newlatlngbounds(bounds),width, height);
地图手势旋转等操作是以地图中心点为标准做旋转的,通过如下方法设置地图中心点。
设置方法为:
mbaidumap.setmapstatus(mapstatusupdatefactory.newlatlng(latlng latlng));
根据使用需要,支持设置地图poi是否显示。
showmappoi方法
在baidumap提供了控制底图标注的showmappoi方法,默认显示底图标注。利用此属性可得到仅显示道路信息的地图,方法如下:
//隐藏地图标注,只显示道路信息//默认显示地图标注mbaidumap.showmappoi(false);
是否显示底图标注的对比如图:
百度地图sdk支持根据标签类型控制地图上poi标签的是否显示,用户可以通过mbaidumap的setpoitagenable接口来实现,默认全部显示。同时通过mbaidumap的getpoitagenable接口来判断标签是否展示 相关接口 java代码
// 用于控制poi标签显示的类别枚举publicenumpoitagstyle{all,//显示poi标签 / 屏蔽所有poi标签epidemic,//疫情标签travel,//旅游出行标签shop;//店铺标签}/*** 是否展示底图poi标签* @param poitagtype 标签类别* @param isenabled 是否展示*/publicvoidsetpoitagenable(poitagtype poitagtype, boolean isenabled)/*** 是否展示底图poi标签* @param poitagtype 标签类别* @return*/public boolean getpoitagenable(poitagtype poitagtype)
使用方法 java代码
//获取地图后,屏蔽地图上的所有poi标签mbaidumap.setpoitagenable(poitagtype.all,false);
上一篇
下一篇
本篇文章对您是否有帮助?