本章节将对各种地图交互方法的设置做介绍,包括改变地图缩放等级、设置地图操作区域和屏幕的边的距离,设置地图显示范围、改变地图类型和控件显示状态、改变地图手势对的中心点、隐藏地图标注等。
根据场景的不同可以分别通过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或版权声明。地图内边距允许您在必要时重新定位这些元素,若您需要在地图布局顶底部显示自定义UI,请设置内边距以保证百度地图logo和版权声明始终可见。
可以通过如下两种方法来设置地图显示范围。
方法一
// 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标签显示的类别枚举public enumPoiTagStyle {All, //显示poi标签 / 屏蔽所有poi标签Epidemic, //疫情标签Travel, //旅游出行标签Shop; //店铺标签}/*** 是否展示底图poi标签* @param poiTagType 标签类别* @param isEnabled 是否展示*/public void setPoiTagEnable(PoiTagType poiTagType, boolean isEnabled)/*** 是否展示底图poi标签* @param poiTagType 标签类别* @return*/public boolean getPoiTagEnable(PoiTagType poiTagType)
使用方法 Java代码
//获取地图后,屏蔽地图上的所有poi标签mBaiduMap.setPoiTagEnable(PoiTagType.All,false);
上一篇
下一篇
本篇文章对您是否有帮助?