getPadding method

Map<String, double> getPadding(
  1. double screenWidth,
  2. double screenHeight
)

Calculates padding for displaying the bounding box on screen

Implementation

Map<String, double> getPadding(double screenWidth, double screenHeight) {
  final aspectRatio = width / height;
  final screenAspectRatio = screenWidth / screenHeight;

  // Ensure minimum padding
  const double minPadding = 50.0;

  if (aspectRatio > screenAspectRatio) {
    // Route is wider than screen
    final verticalPadding = (screenHeight - (screenWidth / aspectRatio)) / 2;
    return {
      'top': math.max(verticalPadding, minPadding),
      'bottom': math.max(verticalPadding, minPadding),
      'left': minPadding,
      'right': minPadding,
    };
  } else {
    // Route is taller than screen
    final horizontalPadding = (screenWidth - (screenHeight * aspectRatio)) / 2;
    return {
      'top': minPadding,
      'bottom': minPadding,
      'left': math.max(horizontalPadding, minPadding),
      'right': math.max(horizontalPadding, minPadding),
    };
  }
}