addCircle method

Future<Circle> addCircle(
  1. CircleOption option
)

添加圆

在点points的位置添加线, 可以设置宽度width和颜色strokeColor

Implementation

Future<Circle> addCircle(CircleOption option) {
  return platform(
    android: (pool) async {
      final map = await _androidController.getMap();

      // 构造点
      final latLng =
          await createcom_amap_api_maps_model_LatLng__double__double(
        option.center.latitude,
        option.center.longitude,
      );

      // 构造参数
      final circleOptions =
          await createcom_amap_api_maps_model_CircleOptions__();

      // 中心点
      await circleOptions.center(latLng);
      // 半径
      await circleOptions.radius(option.radius);
      // 宽度
      if (option.width != null) {
        await circleOptions.strokeWidth(option.width);
      }
      // 边框颜色
      if (option.strokeColor != null) {
        await circleOptions
            .strokeColor(Int32List.fromList([option.strokeColor.value])[0]);
      }
      // 填充颜色
      if (option.fillColor != null) {
        await circleOptions
            .fillColor(Int32List.fromList([option.fillColor.value])[0]);
      }

      // 设置参数
      final circle = await map.addCircle(circleOptions);

      pool..add(map)..add(circleOptions)..add(latLng);

      return Circle.android(circle);
    },
    ios: (pool) async {
      await _iosController.set_delegate(_iosMapDelegate);

      final latLng = await createCLLocationCoordinate2D(
        option.center.latitude,
        option.center.longitude,
      );

      // 参数
      final circle = await MACircle.circleWithCenterCoordinateRadius(
        latLng,
        option.radius,
      );

      // 宽度和颜色需要设置到STACK里去
      if (option.width != null)
        await pushStackJsonable('width', option.width);
      if (option.strokeColor != null)
        await pushStackJsonable('strokeColor', option.strokeColor.value);
      if (option.fillColor != null)
        await pushStackJsonable('fillColor', option.fillColor.value);

      // 设置参数
      await _iosController.addOverlay(circle);

      return Circle.ios(circle, _iosController);
    },
  );
}