compressPath static method
Filters, simplifies, rounds, and encodes a raw list of path coordinates.
Implementation
static PathCompressionResult compressPath(
List<LatLng> path, {
required double minimumDistanceMeters,
required double simplificationToleranceMeters,
required int precision,
List<LatLng> preservePoints = const [],
}) {
_validateCompressionSettings(
minimumDistanceMeters: minimumDistanceMeters,
simplificationToleranceMeters: simplificationToleranceMeters,
precision: precision,
);
if (path.isEmpty) {
return const PathCompressionResult(
filteredPath: [],
simplifiedPath: [],
compressedPath: [],
encodedPath: '',
);
}
final filteredPath = _filterByDistance(
path,
minimumDistanceMeters: minimumDistanceMeters,
preservePoints: preservePoints,
);
final simplifiedPath = _simplifyWithDouglasPeucker(
filteredPath,
toleranceMeters: simplificationToleranceMeters,
preservePoints: preservePoints,
);
final compressedPath = _reducePrecision(
simplifiedPath,
precision: precision,
);
return PathCompressionResult(
filteredPath: filteredPath,
simplifiedPath: simplifiedPath,
compressedPath: compressedPath,
encodedPath: encodePolyline(compressedPath, precision: precision),
);
}