create static method
PositionDataDeliveryPolicy?
create({
- required DataType dataType,
- Duration throttleInterval = Duration.zero,
- double minDistanceMeters = 0,
- double minSpeedChange = 0,
- double minCourseChangeDegrees = 0,
- 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.0or less disables the trigger. Defaults to 0.minSpeedChange: Minimum speed change in m/s that triggers delivery.0or less disables the trigger. Defaults to 0.minCourseChangeDegrees: Minimum course change in degrees that triggers delivery.0or less disables the trigger. Defaults to 0.deliverOnFixQualityChange: Whether a fix-quality change triggers delivery. Defaults to true.
Returns
- PositionDataDeliveryPolicy?: The created policy, or null if creation failed.
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;
}