# flightmonitor/map/map_constants.py """ Constants related to map drawing, appearance, and behavior. """ from typing import Optional, Tuple # --- Map Drawing Colors and Styles --- # Colors for drawing boundaries on the map. DEM_BOUNDARY_COLOR: str = "red" DEM_BOUNDARY_THICKNESS_PX: int = 3 AREA_BOUNDARY_COLOR: str = "blue" AREA_BOUNDARY_THICKNESS_PX: int = 2 # Colors for text labels drawn on tiles (e.g., DEM tile names). TILE_TEXT_COLOR: str = "white" # Use RGBA for transparency in background if supported by PIL/ImageDraw TILE_TEXT_BG_COLOR: str = "rgba(0, 0, 0, 150)" # Semi-transparent black background # --- Map Labeling Constants --- # Base font size for map tile labels and the corresponding zoom level. # Font size will be scaled based on the current map zoom relative to this base zoom. DEM_TILE_LABEL_BASE_FONT_SIZE: int = 12 DEM_TILE_LABEL_BASE_ZOOM: int = 10 # Optional: Default font path for drawing text. # If None, ImageFont.load_default() will be used as the primary font source. # If a path is provided, MapCanvasManager/map_drawing might attempt to load # a TrueType font from this path, falling back to default if it fails. # Example: DEFAULT_LABEL_FONT_PATH = "/path/to/your/font.ttf" DEFAULT_LABEL_FONT_PATH: Optional[str] = None # --- Map Behavior Constants --- # Default zoom level when the map is initialized or reset if no BBox is set. DEFAULT_INITIAL_ZOOM: int = 7 # Minimum and maximum allowed zoom levels for interactive pan/zoom. MIN_ZOOM_LEVEL: int = 0 # Note: Max zoom is often determined by the map tile service, # this provides a fallback/hard limit if service info isn't available. DEFAULT_MAX_ZOOM_FALLBACK: int = 19 # --- Placeholders and Fallbacks --- # Default color for placeholder tile images when a tile cannot be loaded. DEFAULT_PLACEHOLDER_COLOR_RGB: Tuple[int, int, int] = (220, 220, 220) # Light grey # MODIFIED: Added constant for Tkinter canvas background color for placeholders. # WHY: Needed by MapCanvasManager to set the canvas background when displaying placeholder text. # HOW: Added the new constant definition. DEFAULT_PLACEHOLDER_COLOR_RGB_TK: str = ( "gray85" # Tkinter color string for canvas background ) # --- Map Information Panel Formatting --- # Number of decimal places to display for coordinates in the info panel. COORDINATE_DECIMAL_PLACES: int = 5 MAP_SIZE_KM_DECIMAL_PLACES: int = 1 # Number of decimal places for map size in km. # Define standard degree, minute, second symbols for DMS formatting DMS_DEGREE_SYMBOL: str = "°" DMS_MINUTE_SYMBOL: str = "'" DMS_SECOND_SYMBOL: str = "''" # MODIFIED: Paletta colori # WHY: Paletta ampliata # HOW: Ampliata la lista dei colori TRACK_COLOR_PALETTE = [ "#FF0000", "#00FF00", "#0000FF", "#FFFF00", "#FF00FF", "#00FFFF", "#800000", "#008000", "#000080", "#808000", "#800080", "#008080", "#C0C0C0", "#400000", "#004000", "#000040", "#404000", "#400040", "#004040", "#202020", "#FF8000", "#80FF00", "#00FF80", "#8000FF", "#FF0080", "#0080FF", "#808080", "#A0522D", "#D2691E", "#DAA520", "#BDB76B", "#8FBC8F", "#FA8072", "#E9967A", "#F08080", "#CD5C5C", "#DC143C", "#B22222", "#FF69B4", "#FF1493", "#C71585", "#DB7093", "#E6E6FA", "#D8BFD8", "#DDA0DD", "#EE82EE", "#9932CC", "#8A2BE2", "#BA55D3", "#9370DB", "#7B68EE", "#6A5ACD", "#483D8B", "#708090", "#778899", "#B0C4DE", "#ADD8E6", "#87CEEB", "#87CEFA", "#00BFFF", "#1E90FF", "#6495ED", "#4682B4", "#0000CD", "#00008B", ] """ Palette di 64 colori da utilizzare per le tracce degli aerei """