Skip to content
This repository has been archived by the owner on Sep 28, 2021. It is now read-only.

Deprecated_添加覆盖物

小山 edited this page Sep 30, 2020 · 1 revision

添加Marker

添加Marker的方法为AmapController.addMarker,参数为MarkerOptionMarkerOption结构为:

@immutable
class MarkerOption {
  MarkerOption({
    @required this.latLng,
    this.title = '',
    this.snippet = '',
    this.widget,
    this.draggable = false,
    this.infoWindowEnabled = true,
    this.visible = true,
    this.rotateAngle = 0,
    this.anchorU = 0.5,
    this.anchorV = 0,
    this.object,
    this.iconProvider,
    this.iconsProvider,
    this.animationFps,
  }) : assert(!(widget != null && iconProvider != null),
            'widget和iconProvider不能同时设置! ');

  /// 经纬度
  final LatLng latLng;

  /// 标题
  final String title;

  /// 副标题
  final String snippet;

  /// Widget形式的Marker
  ///
  /// 不能和[iconProvider]一起用.
  /// 注意控制Widget的大小, 比如Column默认是max, 会使用地图的高度, 那么此时需要设置成min.
  final Widget widget;

  /// 是否可拖动
  final bool draggable;

  /// 是否允许弹窗
  final bool infoWindowEnabled;

  /// 是否可见
  final bool visible;

  /// 旋转角度 单位为度(°)
  final double rotateAngle;

  /// 横轴锚点
  final double anchorU;

  /// 纵轴锚点
  final double anchorV;

  /// 自定义数据 理论上可以使用任何类型的数据, 但是为了减少意外情况, 这里一律转换成String来保存
  final String object;

  /// 图标
  final ImageProvider iconProvider;

  /// 帧动画图标
  final List<ImageProvider> iconsProvider;

  /// 帧动画帧率
  ///
  /// 最大60, 最小3
  final int animationFps;
}

Marker主要分为图片marker和widget marker两种,但本质上都会被读取成二进制数据传递给原生端。
widget marker的原理是在AmapView外面套一层Stack,然后Stack的第一个子widget用来暂时存放需要显示成marker的widget,第二个子widget为AmapView。当要显示widget marker时,对第一个子widget进行截图,然后传递给原生端进行显示。

添加折线

添加折线(Polyline)的方法为AmapController.addPolyline,参数为PolylineOptionPolylineOption结构为:

@immutable
class PolylineOption {
  /// 经纬度列表
  final List<LatLng> latLngList;

  /// 宽度
  final double width;

  /// 颜色
  final Color strokeColor;

  /// 自定义纹理
  final ImageProvider textureProvider;

  /// 线段末端样式
  final LineCapType lineCapType;

  /// 线段连接处样式
  final LineJoinType lineJoinType;

  /// 是否虚线
  final DashType dashType;
}

添加多边形

添加多边形(Polygon)的方法为AmapController.addPolygon,参数为PolygonOptionPolygonOption结构为:

@immutable
class PolygonOption {
  /// 经纬度列表
  final List<LatLng> latLngList;

  /// 宽度
  final double width;

  /// 边框颜色
  final Color strokeColor;

  /// 填充颜色
  final Color fillColor;
}
Clone this wiki locally