create static method

PositionDataDeliveryPolicy? create({
  1. required DataType dataType,
  2. Duration throttleInterval = Duration.zero,
  3. double minDistanceMeters = 0,
  4. double minSpeedChange = 0,
  5. double minCourseChangeDegrees = 0,
  6. bool deliverOnFixQualityChange = true,
})
override

Create a policy for dataType, which must be DataType.position or DataType.improvedPosition.

Creation fails for any other data type.

Parameters

  • dataType: The data type this policy applies to, DataType.position or DataType.improvedPosition. Required.
  • throttleInterval: Minimum time between delivered updates. Duration.zero, or any non-positive duration, means no throttling. Defaults to Duration.zero.
  • minDistanceMeters: Minimum movement in metres, measured from the last delivered position, that triggers delivery. 0 or less disables the trigger. Defaults to 0.
  • minSpeedChange: Minimum speed change in m/s that triggers delivery. 0 or less disables the trigger. Defaults to 0.
  • minCourseChangeDegrees: Minimum course change in degrees that triggers delivery. 0 or less disables the trigger. Defaults to 0.
  • deliverOnFixQualityChange: Whether a fix-quality change triggers delivery. Defaults to true.

Returns

Implementation

static PositionDataDeliveryPolicy? create({
  required DataType dataType,
  Duration throttleInterval = Duration.zero,
  double minDistanceMeters = 0,
  double minSpeedChange = 0,
  double minCourseChangeDegrees = 0,
  bool deliverOnFixQualityChange = true,
}) {
  final int? id = DataDeliveryPolicy._create(
    'PositionDataDeliveryPolicy',
    dataType,
  );
  if (id == null) {
    return null;
  }

  final PositionDataDeliveryPolicy policy = PositionDataDeliveryPolicy.init(
    id,
    dataType,
  );
  if (throttleInterval != Duration.zero) {
    policy.throttleInterval = throttleInterval;
  }
  if (minDistanceMeters != 0) {
    policy.minDistanceMeters = minDistanceMeters;
  }
  if (minSpeedChange != 0) {
    policy.minSpeedChange = minSpeedChange;
  }
  if (minCourseChangeDegrees != 0) {
    policy.minCourseChangeDegrees = minCourseChangeDegrees;
  }
  policy.deliverOnFixQualityChange = deliverOnFixQualityChange;
  return policy;
}