of static method

MapGlide? of({
  1. required Offset focal,
  2. Offset pan = Offset.zero,
  3. double zoom = 0,
  4. double turn = 0,
  5. double tilt = 0,
})

The glide of a gesture released at these speeds, capped, or null when it was too slow to coast.

Implementation

static MapGlide? of({
  required Offset focal,
  Offset pan = Offset.zero,
  double zoom = 0,
  double turn = 0,
  double tilt = 0,
}) {
  double cap(double v, double most) => v.clamp(-most, most);
  final speed = pan.distance > 6000 ? pan * (6000 / pan.distance) : pan;
  zoom = cap(zoom, 4);
  turn = cap(turn, 300);
  tilt = cap(tilt, 120);
  if (speed.distance < 80 &&
      zoom.abs() < 0.25 &&
      turn.abs() < 10 &&
      tilt.abs() < 10) {
    return null;
  }
  return MapGlide._(focal, speed, zoom, turn, tilt);
}