更新时间:2021年02月25日
本章节将对点标记、添加marker、绘制自定义marker、marker点击和拖拽操作、poi底图标注等做进一步说明。
点标记
点标记用来在地图上标记任何位置,例如用户位置、车辆位置、店铺位置等一切带有位置属性的事物。
地图 sdk 提供的点标记功能包含两大部分,一部分是点( marker)同时,sdk 对 marker 封装了大量的触发事件,例如点击事件、长按事件、拖拽事件。
由于内容丰富,以下只能展示一些基础功能的使用,详细内容可参考类参考文档。
添加marker
开发者可以根据自己实际的业务需求,利用标注覆盖物,在地图指定的位置上添加标注信息。开发者通过bmfmarker类来设置marker的属性。
绘制marker的代码如下:
/// 创建bmfmarker bmfmarker marker = bmfmarker( position: bmfcoordinate(39.928617, 116.40329), title: 'fluttermaker', identifier: 'flutter_marker' icon: 'resoures/icon_end.png'); /// 添加marker mymapcontroller?.addmarker(marker);
bmfmarker包含多种可供设置的属性。常用属性如下:
名称 |
说明 | ||
position |
位置坐标 | ||
islockedtoscreen |
标注是否固定在指定屏幕位置 | ||
screenpointtolock |
标注锁定在屏幕上的位置 | ||
icon | marker图标 | ||
centeroffset |
设置marker相对于坐标位置的偏移,目前android只支持y轴方向的偏移 | ||
enabled3d |
3d效果(ios独有) | ||
enabled |
是否处理事件 | ||
draggable |
是否可拖拽 | ||
visible |
marker是否可见(android独有) | ||
zindex |
元素的堆叠顺序(android独有) |
可触发的marker事件
marker点击事件
点击marker时会回调baidumap.onmarkerclicklistener,监听器的实现方式示例如下:
/// 地图marker点击回调 mymapcontroller?.setmapclickedmarkercallback( callback: (bmfmarker marker) { });
marker拖拽事件
在拖拽marker时会回调baidumap.onmarkerdraglistener,监听器的实现方式如下(要在构造markeroptions时开启draggable):
/// 拖拽marker点击回调 mymapcontroller?.setmapdragmarkercallback( callback: (bmfmarker marker) { });
marker更新接口
名称 |
说明 | ||
updatetitle |
更新title | ||
updatesubtitle |
更新subtitle | ||
updateposition |
更新位置经纬度 | ||
updateislockedtoscreen | 更新是否锁定在屏幕上的位置 | ||
updateicon |
更新显示的图片 | ||
updatecenteroffset |
更新marker centeroffset信息 | ||
updateenabled3d |
更新marker是否显示3d效果 | ||
updateenabled |
更新marker是否响应触摸事件, true则响应,false则不响应 | ||
updatedraggable |
更新是否可拖拽 | ||
updatescalex |
更新x方向缩放倍数,android独有 | ||
updatescalex |
更新x方向缩放倍数,android独有 | ||
updatescaley |
更新y方向缩放倍数,android独有 | ||
updatealpha |
更新透明度,android独有 | ||
updateisperspective |
更新近大远小的开关,android独有 | ||
updatevisible |
更新marker是否显示,android独有 | ||
updatezindex |
更新z轴方向上的堆叠顺序,android独有 |