createDragEndOp method

  1. @override
Op<InteractivePolyline<Object>>? createDragEndOp(
  1. InteractivePolyline<Object> item,
  2. LatLng origin,
  3. LatLng current
)
override

Convert a generic drag end into a concrete commit operation.

Implementation

@override
Op<InteractivePolyline>? createDragEndOp(
    InteractivePolyline item, LatLng origin, LatLng current) {
  final key = item.key;
  if (key == null) return null;

  final deltaLat = current.latitude - origin.latitude;
  final deltaLng = current.longitude - origin.longitude;

  final newPoints = item.points.map((p) {
    return LatLng(p.latitude + deltaLat, p.longitude + deltaLng);
  }).toList();

  final moved = item.copyWith(points: newPoints);

  return UpdatePolylineOp(oldPolyline: item, newPolyline: moved);
}