浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
更新时间:2020年06月23日
本章节将对点标记、添加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);
     

dbj.jpg

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: (String id, dynamic extra) {
      print('mapClickedMarker--\n marker = $id');
      setState(() {
        _markerID = id;
        _action = "点击";
      });
    });

Marker拖拽事件

在拖拽Marker时会回调BaiduMap.OnMarkerDragListener,监听器的实现方式如下(要在构造MarkerOptions时开启draggable):

/// 拖拽marker点击回调
myMapController?.setMapDragMarkerCallback(
        callback: (String id, dynamic extra) {
      String state = extra['state'];

      dynamic centerMap = extra['center'];

      print('drag mapClickedMarker--\n marker = $id');
      setState(() {
        _markerID = id;
        _action = "拖拽";
        _state = state;
        _coordinates = BMFCoordinate.coordinate().fromMap(centerMap);
      });
    });


  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消