Coverage for pyguymer3/openstreetmap/hfov.py: 10%
10 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-08 18:47 +0000
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-08 18:47 +0000
1#!/usr/bin/env python3
3# Define function ...
4def hfov(
5 xtile,
6 ytile,
7 zoom,
8 /,
9):
10 # NOTE: https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Resolution_and_Scale
12 # Import standard modules ...
13 import math
15 # Import sub-functions ...
16 from .num2deg import num2deg
17 from ..consts import CIRCUMFERENCE_OF_EARTH
19 lonW_deg, latN_deg = num2deg(xtile, ytile, zoom) # [°], [°]
20 lonE_deg, latS_deg = num2deg(xtile + 1, ytile + 1, zoom) # [°], [°]
21 latC_rad = math.radians(0.5 * (latS_deg + latN_deg))
22 n = pow(2, zoom)
23 resoluOfEarth = CIRCUMFERENCE_OF_EARTH * math.cos(latC_rad) / n # [m/tile]
25 # Return answer ...
26 return lonE_deg - lonW_deg, resoluOfEarth