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

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
事件交互
下载开发文档

本章节将对各类监听事件做介绍,地图事件监听(地图状态改变、各种手势、截屏)等。

地图事件监听

sdk定义了各种地图相关事件的监听,提供相应的事件监听方法,包括地图状态的改变、手势事件、地图渲染、地图截屏事件等。如下所示:

地图状态改变接口:

onmapstatuschangelistener listener =newonmapstatuschangelistener(){
baidumap.onmapstatuschangelistener listener =newbaidumap.onmapstatuschangelistener(){
/**
* 手势操作地图,设置地图状态等操作导致地图状态开始改变。
*
* @param status 地图状态改变开始时的地图状态
*/
@override
publicvoidonmapstatuschangestart(mapstatus status){
}
/**
* 手势操作地图,设置地图状态等操作导致地图状态开始改变。
*
* @param status 地图状态改变开始时的地图状态
*
* @param reason 地图状态改变的原因
*/
//用户手势触发导致的地图状态改变,比如双击、拖拽、滑动底图
//int reason_gesture = 1;
//sdk导致的地图状态改变, 比如点击缩放控件、指南针图标
//int reason_api_animation = 2;
//开发者调用,导致的地图状态改变
//int reason_developer_animation = 3;
@override
publicvoidonmapstatuschangestart(mapstatus status, int reason){
}
/**
* 地图状态变化中
*
* @param status 当前地图状态
*/
@override
publicvoidonmapstatuschange(mapstatus status){
}
/**
* 地图状态改变结束
*
* @param status 地图状态改变结束后的地图状态
*/
@override
publicvoidonmapstatuschangefinish(mapstatus status){
}
};
//设置地图状态监听
mbaidumap.setonmapstatuschangelistener(listener);

地图单击事件监听接口:

baidumap.onmapclicklistener listener =newbaidumap.onmapclicklistener(){
/**
* 地图单击事件回调函数
*
* @param point 点击的地理坐标
*/
@override
publicvoidonmapclick(latlng point){
}
/**
* 地图内 poi 单击事件回调函数
*
* @param mappoi 点击的 poi 信息
*/
@override
publicvoidonmappoiclick(mappoi mappoi){
}
};
//设置地图单击事件监听
mbaidumap.setonmapclicklistener(listener);

地图双击事件监听接口:

baidumap.onmapdoubleclicklistener listener =newbaidumap.onmapdoubleclicklistener(){
/**
* 地图双击事件监听回调函数
*
* @param point 双击的地理坐标
*/
@override
publicvoidonmapdoubleclick(latlng point){
}
};
//设置地图双击事件监听
mbaidumap.setonmapdoubleclicklistener(listener);

地图长按事件监听接口:

baidumap.onmaplongclicklistener listener =newbaidumap.onmaplongclicklistener(){
/**
* 地图长按事件监听回调函数
*
* @param point 长按的地理坐标
*/
@override
publicvoidonmaplongclick(latlng point){
}
};
//设置地图长按事件监听
mbaidumap.setonmaplongclicklistener(listener);

地图 marker 覆盖物点击事件监听接口:

onmarkerclicklistener listener =newonmarkerclicklistener(){
/**
* 地图 marker 覆盖物点击事件监听函数
* @param marker 被点击的 marker
*/
public boolean onmarkerclick(marker marker){
}
};

触摸地图回调接口:

baidumap.onmaptouchlistener listener =newbaidumap.onmaptouchlistener(){
/**
* 当用户触摸地图时回调函数
*
* @param motionevent 触摸事件
*/
@override
publicvoidontouch(motionevent motionevent){
}
};
//设置触摸地图事件监听者
mbaidumap.setonmaptouchlistener(listener);

地图加载完成回调接口:

baidumap.onmaploadedcallback callback =newbaidumap.onmaploadedcallback(){
/**
* 地图加载完成回调函数
*/
@override
publicvoidonmaploaded(){
}
};
//设置地图加载完成回调
mbaidumap.setonmaploadedcallback(callback);

地图渲染完成回调接口:

自4.1.0起,增加地图渲染完成的监听接口onmaprenderfinished(),每次对地图有操作时,绘制完成时调用。

baidumap.onmaprendercallback callback =newbaidumap.onmaprendercallback(){
/**
* 地图渲染完成回调函数
*/
@override
publicvoidonmaprenderfinished(){
}
};
//设置地图渲染完成回调
mbaidumap.setonmaprendercallbadk(callback);

地图截屏回调接口:

baidumap.snapshotreadycallback callback =newbaidumap.snapshotreadycallback(){
/**
* 地图截屏回调接口
*
* @param snapshot 截屏返回的 bitmap 数据
*/
@override
publicvoidonsnapshotready(bitmap snapshot){
}
};
/**
* 发起截图请求
*
* @param callback 截图完成后的回调
*/
mbaidumap.snapshot(callback);

地图定位图标点击事件监听接口:

注意:确保开启定位图层

baidumap.onmylocationclicklistener listener =newbaidumap.onmylocationclicklistener(){
/**
* 地图定位图标点击事件监听函数
*/
@override
public boolean onmylocationclick(){
returnfalse;
}
};
//设置定位图标点击事件监听
mbaidumap.setonmylocationclicklistener(listener);
对线和标注引入事件分发机制

自v4.1.0起,加入事件处理机制,对于polyline和marker的点击事件,开发者可以通过相关回调接口捕获处理。示例如下:

marker点击事件接口:

baidumap.onmarkerclicklistener listener =newbaidumap.onmarkerclicklistener(){
/**
* 地图 marker 覆盖物点击事件监听函数
* @param marker 被点击的 marker
*/
@override
public boolean onmarkerclick(marker marker){
returnfalse;//是否捕获点击事件
}
};
// 设置地图 marker 覆盖物点击事件监听者,自3.4.0版本起可设置多个监听对象,停止监听时调用removemarkerclicklistener移除监听对象
mbaidumap.setonmarkerclicklistener(listener);
//停止监听时移除监听对象
mbaidumap.removemarkerclicklistener(listener);

polyline点击事件接口:

baidumap.onpolylineclicklistener listener =newbaidumap.onpolylineclicklistener(){
/**
* 地图 polyline 覆盖物点击事件监听函数
*
* @param polyline 被点击的 polyline
*/
@override
public boolean onpolylineclick(polyline polyline){
returnfalse;//是否捕获点击事件
}
};
//设置地图 polyline 覆盖物点击事件监听
mbaidumap.setonpolylineclicklistener(listener);

当开发者对上述点击不处理时,向下传递,等同于地图点击事件,可由onmapclicklistener捕获。

上一篇

控件和手势

下一篇

方法交互

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

网站地图