文章目录
- 覆盖物介绍
- 添加覆盖物的步骤
- OverlayOptions
- 坐标点
- 覆盖物类型
- addOverlay()方法
- 标注覆盖物
- 标注覆盖物选项类
- 标注覆盖物工厂类
- 标注覆盖物设置监听器
- 代码1 显示单一覆盖物
- 代码2 显示集合标注覆盖物
- 代码3 地图控制器标注地图覆盖物点击事件监听器
- 代码4 地图控制器标注地图覆盖物拖拽事件监听器
- 几何图形覆盖物
- DotOptions - 创建圆点的选项类
- PolylineOptions - 创建折线覆盖物选项类
- ArcOptions - 创建弧线覆盖物选项类
- CircleOptions - 创建圆覆盖物选项类
- PolygonOptions - 创建多边形覆盖物选项类
- 代码1:显示点覆盖物
- 代码2:显示多边形覆盖物
- 文字图形覆盖
- TextOptions - 创建文字覆盖物选项类
- 代码1:
- 图层覆盖物
- GroundOverlayOptions 创建 ground 覆盖物的选项类
- 代码1:显示图层覆盖物
- 弹出窗覆盖物
- 全部代码
覆盖物介绍
所有叠加或覆盖到地图的内容,我们统称为地图 覆盖物。如文本、标注、几何图形 、信息窗口等。
添加覆盖物的步骤
- 定义坐标点,有可能是一个,有可能是多个(比如: 多边形覆盖物),坐标是经纬度坐标。
- 构造OverlayOptions(地图覆盖物选型基类)
- 在地图上添加覆盖物。
- 添加相应的监听事件。
OverlayOptions
覆盖物的基类,覆盖物都是这个类的子类。
坐标点
// 构造函数
public LatLng(double latitude, double longitude)
latitude - 纬度
longitude - 经度
覆盖物类型
想要在地图上添加覆盖物需要一个OverlayOptions类型 的参数,
OverlayOptions本身是一个抽象类,想要添加 覆盖物则必须实例化其子类。
addOverlay()方法
在地图上添加覆盖物通过BaiduMap类的 addOverlay()方法。
添加单一覆盖物的的话是有一个返回值的。
向地图添加一个 Overlay
Overlay addOverlay(OverlayOptions options)
Parameters: options - 将要添加的 overlay 选项
Returns: 被添加的 overlay对象
标注覆盖物
可以在地图上显示多个
可以有监听器,比较常用。
标注覆盖物选项类
position类与icon类必须有,是必选的。
标注覆盖物工厂类
标注覆盖物设置监听器
static interface BaiduMap.OnMarkerClickListener - 地图 Marker 覆盖物点击事件监听接口
➢static interface BaiduMap.OnMarkerDragListener - 地图 Marker 覆盖物拖拽事件监听接口
代码1 显示单一覆盖物
//显示单一覆盖物
private void fun1() {
//1. 创建标注覆盖物对象,设置其参数
//图标
BitmapDescriptor bitmapDescriptor= BitmapDescriptorFactory.fromResource(R.mipmap.red_marker);
//坐标
LatLng position=new LatLng(39.915118,116.40397);//参数,精度,维度,竖着横着。
//额外信息,Bundle简单封装
Bundle bundle=new Bundle();
bundle.putString("string1","北京不欢迎我");
MarkerOptions markerOptions=new MarkerOptions()
.icon(bitmapDescriptor)//设置图标,--必选
.position(position)//设置位置,--必选
.draggable(true)//是否可以拖拽
.alpha(0.7f)//透明度
.extraInfo(bundle)//添加额外信息
.rotate(-45);//旋转角度
//2. 显示覆盖物对象
Marker marker= (Marker) baiduMap.addOverlay(markerOptions);
//获得额外信息
Bundle extraInfo=marker.getExtraInfo();
String str1=extraInfo.getString("string1");
Log.e("0000000001",str1);
}
代码2 显示集合标注覆盖物
private void fun2() {
//定义标注覆盖物集合对象
List<OverlayOptions> markerOptionsLIst=new ArrayList<>();
Bundle bundle1=new Bundle();
bundle1.putString("str1","str1Message");
//创建覆盖物集合对象,添加到集合中
OverlayOptions options1=new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.green_marker))
.position(new LatLng(39.915118,116.40397))
.draggable(true)
.extraInfo(bundle1);
markerOptionsLIst.add(options1);
Bundle bundle2=new Bundle();
bundle1.putString("str2","str2Message");
//创建覆盖物集合对象,添加到集合中
OverlayOptions options2=new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.blue_marker))
.position(new LatLng(39.955118,116.40397))
.draggable(true)
.extraInfo(bundle1);
markerOptionsLIst.add(options2);
baiduMap.addOverlays(markerOptionsLIst);
}
代码3 地图控制器标注地图覆盖物点击事件监听器
//点击
private void fun3() {
baiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {
@Override
//获取bundle信息
public boolean onMarkerClick(Marker marker) {
Bundle bundle=marker.getExtraInfo();
String message=bundle.getString("str1");
Toast.makeText(getApplicationContext(),
message,
Toast.LENGTH_SHORT)
.show();
return true;
}
});
}
代码4 地图控制器标注地图覆盖物拖拽事件监听器
//拖拽
private void fun4() {
baiduMap.setOnMarkerDragListener(new BaiduMap.OnMarkerDragListener() {
@Override//拖拽中
public void onMarkerDrag(Marker marker) {
}
@Override
public void onMarkerDragEnd(Marker marker) {
//拖拽结束,显示当前位置坐标
//获取坐标
LatLng position=marker.getPosition();
Log.e("0000000002",position.toString());
//获取经纬度
double lat=position.latitude;//维度
double lng=position.longitude;//精度
//显toast示
Toast.makeText(
getApplicationContext(),
lat+"+++++"+lng,
Toast.LENGTH_LONG
).show();
}
@Override//拖拽前
public void onMarkerDragStart(Marker marker) {
}
});
}
几何图形覆盖物
没有监听器,但是可以设置很多。
地图SDK提供多种结合图形覆盖物,利用这些图形,可帮 助构建更加丰富多彩的地图应用。目前提供的几何图形有: 点(Dot)、折线(Polyline)、弧线(Arc)、圆 (Circle)、多边形(Polygon)。
DotOptions - 创建圆点的选项类
PolylineOptions - 创建折线覆盖物选项类
ArcOptions - 创建弧线覆盖物选项类
CircleOptions - 创建圆覆盖物选项类
PolygonOptions - 创建多边形覆盖物选项类
依靠点来确定
代码1:显示点覆盖物
//创建点的中心坐标(天安门广场)
LatLng position=new LatLng(39.915118,116.40397);
//创建覆盖物-点-的中心对象
DotOptions dotOptions=new DotOptions()
.center(position)//中心点位置
.color(0Xaacccccc)//颜色
.radius(100)//半径
.zIndex(5)//在Z轴的位置
;
//显示覆盖物
baiduMap.addOverlay(dotOptions);
代码2:显示多边形覆盖物
//创建顶点坐标
List<LatLng> points=new ArrayList<>();
points.add(new LatLng(39.915118,116.40397));
points.add(new LatLng(39.955118,116.44397));
points.add(new LatLng(39.955118,116.40397));
points.add(new LatLng(39.915118,116.44397));
//创建多边形
PolygonOptions polygonOptions=new PolygonOptions()
.points(points)//点的集合
.fillColor(0Xaaaaaaff)//内部填充颜色
.zIndex(3);//Z轴高度
//展示点
baiduMap.addOverlay(polygonOptions);
文字图形覆盖
TextOptions - 创建文字覆盖物选项类
代码1:
//坐标
LatLng position=new LatLng(39.928645,116.403316);
//创建文字覆盖物对象
TextOptions textOptions=new TextOptions()
.position(position)
.text("这里是故宫北门了")
.fontColor(0Xffaa2233)
.bgColor(0Xaacccccc)
.fontSize(45)
.rotate(180)
.typeface(Typeface.DEFAULT_BOLD);//字体
//显示
baiduMap.addOverlay(textOptions);
图层覆盖物
地形图图层(GroundOverlay), 又可叫做图片图层,即开发者可 在地图的指定位置上添加图片。 该图片可随地图的平移、缩放、 旋转等操作做相应的变换。该图 层是一种特殊的Overlay, 它位 于地图和地标注层之间(即该图 层不会遮挡地图标注信息)。
必须有图片与位置
GroundOverlayOptions 创建 ground 覆盖物的选项类
代码1:显示图层覆盖物
//获得图像的BitmapDescriptor对象
BitmapDescriptor bitmapDescriptor=BitmapDescriptorFactory.fromResource(R.mipmap.ly);
//创建用于显示覆盖物的LatLngBounds对象
LatLngBounds latLngBounds=new LatLngBounds.Builder()
.include(new LatLng(39.913095,116.403658))//西南方坐标
.include(new LatLng(39.91351,116.404323))//东北方坐标
.build();
//创建图层覆盖物对象
GroundOverlayOptions groundOverlayOptions=new GroundOverlayOptions()
.image(bitmapDescriptor)
.positionFromBounds(latLngBounds)
.zIndex(2);
//显示
baiduMap.addOverlay(groundOverlayOptions);
弹出窗覆盖物
在百度地图上可以添加一种可以 弹出的覆盖物(InfoWindow), 弹出的窗口布局可以自定义,开 发者可利用此接口,构建具有更 强交互性的地图页面。
//显示简单形式弹出窗覆盖物
fun9();
//显示复杂布局的弹出窗覆盖物
fun10();
private void fun10(){
//弹出窗覆盖物的VIew对象
View view = LayoutInflater.from(getApplicationContext())
.inflate(R.layout.infowindow_layout,
null);
//获取View的BitmapDescriptor对象
BitmapDescriptor bp = BitmapDescriptorFactory.fromView(view);
//创建弹出窗覆盖物显示的经纬度坐标对象
LatLng position = new LatLng(
39.909179,
116.434164
);
//创建Infowindow的点击事件监听器
InfoWindow.OnInfoWindowClickListener listener =
new InfoWindow.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick() {
//隐藏InfoWinwdow对象
baiduMap.hideInfoWindow();
}
};
//创建InfoWindow对象
infoWindow2 = new InfoWindow(
bp,
position,
0,
listener
);
//在地图上显示
baiduMap.showInfoWindow(infoWindow2);
}
private void fun9(){
//创建弹出窗覆盖物显示的View对象
Button btn = new Button(getApplicationContext());
btn.setText("简单的弹出窗覆盖物");
btn.setTextSize(50);
btn.setTextColor(Color.DKGRAY);
btn.setBackgroundResource(R.mipmap.national_flag);
//创建弹出窗覆盖物显示的经纬度坐标对象
LatLng position = new LatLng(
39.909179,
116.368337
);
//1. 创建弹出窗覆盖物对象
infoWindow1 = new InfoWindow(
btn,
position,
0
);
//2. 在地图上显示弹出窗覆盖物
baiduMap.showInfoWindow(infoWindow1);
}
全部代码
package com.example.mybaidumap;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.graphics.Point;
import android.graphics.Typeface;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.DotOptions;
import com.baidu.mapapi.map.GroundOverlayOptions;
import com.baidu.mapapi.map.InfoWindow;
import com.baidu.mapapi.map.LogoPosition;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.Marker;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.Overlay;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.map.PolygonOptions;
import com.baidu.mapapi.map.TextOptions;
import com.baidu.mapapi.map.UiSettings;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.model.LatLngBounds;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private Button btnRemoveIcon;//移除地图
private Button btnTrafic;//交通地图
private Button btnNomal;//普通地图
private Button btnSatl;//卫星地图
private MapView mvMap;//添加地图控件属性
private BaiduMap baiduMap;//定义BaiduMap控制器类属性
private UiSettings uiSettings;//定义UISettingsUI控制类属性
//弹出窗覆盖物
private InfoWindow infoWindow1;
private InfoWindow infoWindow2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始化地图服务,必须要在setContentView方法调用之前
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//获取地图控件与控制器
mvMap = findViewById(R.id.mvMap);
findViews();
setListener();
initControllers();//maiduMap对象与UI对象
//--------------------------------------------------------------------------------------------
// 设置LOGO图标位置
setLogoPositions();
// //隐藏LOGO图标
hideLogo();
// //指南针是否显示
Log.i("lww","默认指南针显示状态:" +uiSettings.isCompassEnabled());
// 设置显示指南针
// baiduMap.setCompassEnable(true);
// uiSettings.setCompassEnabled(true);
// 比例尺操作
// zoomOperation();
// 设置地图俯视图状态
// setOverLookingStatus();
//显示标注覆盖物
// //显示单一覆盖物
// fun1();
// //显示集合标注覆盖物
// fun2();
// //地图控制器标注地图覆盖物点击事件监听器
// fun3();
// //地图控制器标注地图覆盖物拖拽事件监听器
// fun4();
//显示几何图形覆盖物
// //显示点覆盖物
// fun5();
// //显示多边形覆盖物
// fun6();
//显示文字覆盖物
//fun7();
//显示图层覆盖物,必须有图片与位置,(人民英雄纪念碑,绿色图标)
//fun8();
//显示简单形式弹出窗覆盖物
//fun9();
//显示复杂布局的弹出窗覆盖物
fun10();
}//--------------------------------------------------------------------------------------------
private void fun10(){
//弹出窗覆盖物的VIew对象
View view = LayoutInflater.from(getApplicationContext())
.inflate(R.layout.infowindow_layout,
null);
//获取View的BitmapDescriptor对象
BitmapDescriptor bp = BitmapDescriptorFactory.fromView(view);
//创建弹出窗覆盖物显示的经纬度坐标对象
LatLng position = new LatLng(
39.909179,
116.434164
);
//创建Infowindow的点击事件监听器
InfoWindow.OnInfoWindowClickListener listener =
new InfoWindow.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick() {
//隐藏InfoWinwdow对象
baiduMap.hideInfoWindow();
}
};
//创建InfoWindow对象
infoWindow2 = new InfoWindow(
bp,
position,
0,
listener
);
//在地图上显示
baiduMap.showInfoWindow(infoWindow2);
}
private void fun9(){
//创建弹出窗覆盖物显示的View对象
Button btn = new Button(getApplicationContext());
btn.setText("简单的弹出窗覆盖物");
btn.setTextSize(50);
btn.setTextColor(Color.DKGRAY);
btn.setBackgroundResource(R.mipmap.national_flag);
//创建弹出窗覆盖物显示的经纬度坐标对象
LatLng position = new LatLng(
39.909179,
116.368337
);
//1. 创建弹出窗覆盖物对象
infoWindow1 = new InfoWindow(
btn,
position,
0
);
//2. 在地图上显示弹出窗覆盖物
baiduMap.showInfoWindow(infoWindow1);
}
private void fun8() {
//获得图像的BitmapDescriptor对象
BitmapDescriptor bitmapDescriptor=BitmapDescriptorFactory.fromResource(R.mipmap.ly);
//创建用于显示覆盖物的LatLngBounds对象
LatLngBounds latLngBounds=new LatLngBounds.Builder()
.include(new LatLng(39.913095,116.403658))//西南方坐标
.include(new LatLng(39.91351,116.404323))//东北方坐标
.build();
//创建图层覆盖物对象
GroundOverlayOptions groundOverlayOptions=new GroundOverlayOptions()
.image(bitmapDescriptor)//覆盖物图像
.positionFromBounds(latLngBounds)//显示位置
.zIndex(2);
//显示
baiduMap.addOverlay(groundOverlayOptions);
}
private void fun7() {
//坐标
LatLng position=new LatLng(39.928645,116.403316);
//创建文字覆盖物对象
TextOptions textOptions=new TextOptions()
.position(position)
.text("这里是天安门了")
.fontColor(0Xffaa2233)
.bgColor(0Xaacccccc)
.fontSize(45)
.rotate(180)
.typeface(Typeface.DEFAULT_BOLD);//字体
//显示
baiduMap.addOverlay(textOptions);
}
private void fun6() {
//创建顶点坐标
List<LatLng> points=new ArrayList<>();
points.add(new LatLng(39.915118,116.40397));
points.add(new LatLng(39.955118,116.44397));
points.add(new LatLng(39.955118,116.40397));
points.add(new LatLng(39.915118,116.44397));
//创建多边形
PolygonOptions polygonOptions=new PolygonOptions()
.points(points)//点的集合
.fillColor(0Xaaaaaaff)//内部填充颜色
.zIndex(3);//Z轴高度
//展示点
baiduMap.addOverlay(polygonOptions);
}
private void fun5() {
//创建点的中心坐标(天安门广场)
LatLng position=new LatLng(39.915118,116.40397);
//创建覆盖物-点-的中心对象
DotOptions dotOptions=new DotOptions()
.center(position)//中心点位置
.color(0Xaacccccc)//颜色
.radius(100)//半径
.zIndex(5)//在Z轴的位置
;
//显示覆盖物
baiduMap.addOverlay(dotOptions);
}
//拖拽
private void fun4() {
baiduMap.setOnMarkerDragListener(new BaiduMap.OnMarkerDragListener() {
@Override//拖拽中
public void onMarkerDrag(Marker marker) {
}
@Override
public void onMarkerDragEnd(Marker marker) {
//拖拽结束,显示当前位置坐标
//获取坐标
LatLng position=marker.getPosition();
Log.e("0000000002",position.toString());
//获取经纬度
double lat=position.latitude;//维度
double lng=position.longitude;//精度
//显toast示
Toast.makeText(
getApplicationContext(),
lat+"+++++"+lng,
Toast.LENGTH_LONG
).show();
}
@Override//拖拽前
public void onMarkerDragStart(Marker marker) {
}
});
}
//点击
private void fun3() {
baiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {
@Override
//获取bundle信息
public boolean onMarkerClick(Marker marker) {
Bundle bundle=marker.getExtraInfo();
String message=bundle.getString("str1");
Toast.makeText(getApplicationContext(),
message,
Toast.LENGTH_SHORT)
.show();
return true;
}
});
}
private void fun2() {
//定义标注覆盖物集合对象
List<OverlayOptions> markerOptionsLIst=new ArrayList<>();
Bundle bundle1=new Bundle();
bundle1.putString("str1","str1Message");
//创建覆盖物集合对象,添加到集合中
OverlayOptions options1=new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.green_marker))
.position(new LatLng(39.915118,116.40397))
.draggable(true)
.extraInfo(bundle1);
markerOptionsLIst.add(options1);
Bundle bundle2=new Bundle();
bundle1.putString("str2","str2Message");
//创建覆盖物集合对象,添加到集合中
OverlayOptions options2=new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.blue_marker))
.position(new LatLng(39.955118,116.40397))
.draggable(true)
.extraInfo(bundle1);
markerOptionsLIst.add(options2);
baiduMap.addOverlays(markerOptionsLIst);
}
//显示单一覆盖物
private void fun1() {
//1. 创建标注覆盖物对象,设置其参数
//图标
BitmapDescriptor bitmapDescriptor= BitmapDescriptorFactory.fromResource(R.mipmap.red_marker);
//坐标
LatLng position=new LatLng(39.915118,116.40397);//参数,精度,维度,竖着横着。
//额外信息,Bundle简单封装
Bundle bundle=new Bundle();
bundle.putString("string1","北京不欢迎我");
MarkerOptions markerOptions=new MarkerOptions()
.icon(bitmapDescriptor)//设置图标,--必选
.position(position)//设置位置,--必选
.draggable(true)//是否可以拖拽
.alpha(0.7f)//透明度
.extraInfo(bundle)//添加额外信息
.rotate(-45);//旋转角度
//2. 显示覆盖物对象
Marker marker= (Marker) baiduMap.addOverlay(markerOptions);
//获得额外信息
Bundle extraInfo=marker.getExtraInfo();
String str1=extraInfo.getString("string1");
Log.e("0000000001",str1);
}
//---------------------------------------------------------------------------------------------
/**
* 设置地图的俯视图效果
*/
private void setOverLookingStatus() {
//创建俯视图的MapStatus对象
MapStatus mapStatus = new MapStatus.Builder()
.overlook(-45)//俯视范围:(-45,0)
.build();
//1 创建俯视图的MapStatusUpdate对象
MapStatusUpdate statusUpdate =
MapStatusUpdateFactory.newMapStatus(mapStatus);
//2 通过百度控制器应用地图状态更新
baiduMap.setMapStatus(statusUpdate);
}
/**
* 比例尺操作
*/
private void zoomOperation() {
//设置是否显示比例尺(默认显示)
mvMap.showZoomControls(true);
//获取比例尺的大小
Log.i("lww", "地图级别" + mvMap.getMapLevel());
//通过设置地图更新来重新设置比例尺位置
baiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
//改变比例尺和放大缩小图标位置
//设置放大缩小按钮位置
mvMap.setZoomControlsPosition(new Point(800, 200));
//设置比例尺位置
mvMap.setScaleControlPosition(new Point(200, 300));
}
});
//设置比例尺放大缩小的范围
baiduMap.setMaxAndMinZoomLevel(18, 9);
//获取当前允许的最大的比例尺
float max = baiduMap.getMaxZoomLevel();
//获取当前允许的最小的比例尺
float min = baiduMap.getMinZoomLevel();
Log.i("lww", "当前比例尺范围:" + max + "---" + min);
//设置当前默认比例尺大小
//1. 创建一个地图状态更新对象
MapStatusUpdate statusUpdate =
MapStatusUpdateFactory.zoomTo(18);
//2. 通过百度地图控制器应用状态更新
baiduMap.setMapStatus(statusUpdate);
}
/**
* 隐藏百度Logo图标
*/
private void hideLogo() {
//获取地图上方id为1的View(Logo的位置id=1)
//地图展示是一层一层的,
View logo = mvMap.getChildAt(1);
//隐藏Logo的View
if(null != logo && logo instanceof ImageView) {
logo.setVisibility(View.INVISIBLE);
}
}
private void setLogoPositions() {
//通过MapView对象设置LOGO位置为底部居中
mvMap.setLogoPosition(LogoPosition.logoPostionCenterBottom);
}
//-------------------------------------------------------------------------------------------------
private void setListener() {
MyListener listener = new MyListener();
btnSatl.setOnClickListener(listener);
btnNomal.setOnClickListener(listener);
btnTrafic.setOnClickListener(listener);
btnRemoveIcon.setOnClickListener(listener);
}
private void initControllers() {
//通过MapView对象获取BaiduMap控制器对象
baiduMap = mvMap.getMap();
//通过BaiduMap控制器对象获取UiSettings对象
uiSettings = baiduMap.getUiSettings();
}
private void findViews() {
btnNomal = findViewById(R.id.btn_nomal);
btnSatl = findViewById(R.id.btn_salt);
btnTrafic = findViewById(R.id.btn_trafic);
btnRemoveIcon = findViewById(R.id.btn_remove);
}
class MyListener implements View.OnClickListener{
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_nomal:
//显示普通地图(默认地图形式)
baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
break;
case R.id.btn_salt:
//显示卫星地图
baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
break;
case R.id.btn_trafic:
//显示交通图(默认不显示交通图)
baiduMap.setTrafficEnabled(true);
//显示热力图(默认不显示热力图)
// baiduMap.setBaiduHeatMapEnabled(true);
break;
case R.id.btn_remove:
//删除图标
//首先获取到垂直方向上的id为1的View对象
View view = mvMap.getChildAt(1);
//删除
if(null != view){
mvMap.removeViewAt(1);
}
break;
}
}
}
//---------------------------------------------------三个地图与activity同步方法:
@Override
protected void onDestroy() {
super.onDestroy();
//调用地图销毁的方法
mvMap.onDestroy();
Log.i("lww", "onDestroy");
}
@Override
protected void onResume() {
super.onResume();
mvMap.onResume();
Log.i("lww", "onResume");
}
@Override
protected void onPause() {
super.onPause();
mvMap.onPause();
Log.i("lww", "onPause");
}
}