latitudeDifferenceForZoom static method
Implementation
static double latitudeDifferenceForZoom(double zoomLevel, double pixelThreshold, double latitude) {
const double earthCircumference = 40075017.0; // Earth's circumference in meters
const double earthRadius = 6378137.0; // Earth's radius in meters
// Calculate meters per pixel based on zoom level and latitude
double cosLat = cos(latitude * pi / 180); // Precompute cos(latitude) once
double metersPerPixel = earthCircumference * cosLat / (256 * pow(2, zoomLevel)); // Scale for zoom level
// Convert meters to latitude difference directly
return (metersPerPixel * pixelThreshold) / (earthRadius * pi / 180);
}