- Android百度地图开发(一):概述
- Android百度地图开发(二):项目创建
- Android百度地图开发(三):定位
- Android百度地图开发(四):创建地图
- Android百度地图开发(五):图层
- Android百度地图开发(六):图形绘制
- Android百度地图开发(七):地图事件监听
可以监听到地图事件有:
- key验证(通过广播)
- 地图状态改变(包含手势、设置地图状态或其他某种操作导致地图状态改变)
- 地图单击事件
- 地图加载完成
- 地图渲染完成
- 地图双击事件
- 地图长按事件
- 地图 Marker 覆盖物点击事件
- 地图定位图标点击事件
- 地图截屏回调
- 触摸地图
//监听地图事件监听
IntentFilter iFilter = new IntentFilter();
//key 验证失败
iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR);
registerReceiver(mReceiver, iFilter);
public class SDKReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR))
{
// key 验证失败,相应处理
}
}
}
//地图状态改变
BaiduMap.OnMapStatusChangeListener mOnMapStatusChangeListener = new BaiduMap.OnMapStatusChangeListener() {
/**
* 手势操作地图,设置地图状态等操作导致地图状态开始改变。
* @param mapStatus 地图状态改变开始时的地图状态
*/
@Override
public void onMapStatusChangeStart(MapStatus mapStatus) {
toast("onMapStatusChangeStart");
}
/** 因某种操作导致地图状态开始改变。
* @param mapStatus 地图状态改变开始时的地图状态
* @param reason 表示地图状态改变的原因,取值有:
* 1:用户手势触发导致的地图状态改变,比如双击、拖拽、滑动底图
* 2:SDK导致的地图状态改变, 比如点击缩放控件、指南针图标
* 3:开发者调用,导致的地图状态改变
*/
@Override
public void onMapStatusChangeStart(MapStatus mapStatus, int reason) {
toast("onMapStatusChangeStart");
}
/**
* 地图状态变化中
* @param mapStatus 当前地图状态
*/
@Override
public void onMapStatusChange(MapStatus mapStatus) {
toast("onMapStatusChange");
}
/**
* 地图状态改变结束
* @param mapStatus 地图状态改变结束后的地图状态
*/
@Override
public void onMapStatusChangeFinish(MapStatus mapStatus) {
toast("onMapStatusChangeFinish");
}
};
//地图单击事件
BaiduMap.OnMapClickListener listener = new BaiduMap.OnMapClickListener() {
/**
* 地图单击事件回调函数
* @param point 点击的地理坐标
*/
public void onMapClick(LatLng point){
toast("onMapClick");
}
/**
* 地图内 Poi 单击事件回调函数
* @param poi 点击的 poi 信息
*/
public boolean onMapPoiClick(MapPoi poi){
return false;
}
};
//地图加载完成回调
BaiduMap.OnMapLoadedCallback mOnMapLoadedCallback = new BaiduMap.OnMapLoadedCallback() {
/**
* 地图加载完成回调函数
*/
public void onMapLoaded(){
toast("地图加载完成回调");
}
};
//地图渲染完成
BaiduMap.OnMapRenderCallback mOnMapRenderCallback = new BaiduMap.OnMapRenderCallback() {
@Override
public void onMapRenderFinished() {
toast("地图渲染完成");
}
};
//地图双击事件监听
BaiduMap.OnMapDoubleClickListener mOnMapDoubleClickListener = new BaiduMap.OnMapDoubleClickListener() {
@Override
public void onMapDoubleClick(LatLng latLng) {
toast("地图双击");
}
};
//地图长按事件监听
BaiduMap.OnMapLongClickListener mOnMapLongClickListener = new BaiduMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng latLng) {
toast("地图长按");
}
};
//地图 Marker 覆盖物点击事件监听
BaiduMap.OnMarkerClickListener mOnMarkerClickListener = new BaiduMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
return false;
}
};
//地图定位图标点击事件监听
BaiduMap.OnMyLocationClickListener mOnMyLocationClickListener = new BaiduMap.OnMyLocationClickListener() {
@Override
public boolean onMyLocationClick() {
return false;
}
};
//地图截屏回调
BaiduMap.SnapshotReadyCallback mSnapshotReadyCallback = new BaiduMap.SnapshotReadyCallback() {
@Override
public void onSnapshotReady(Bitmap bitmap) {
toast("地图截屏回调");
}
};
//触摸地图回调
BaiduMap.OnMapTouchListener mOnMapTouchListener = new BaiduMap.OnMapTouchListener() {
@Override
public void onTouch(MotionEvent motionEvent) {
}
};