latitudeDiffPerPixel method

double latitudeDiffPerPixel(
  1. double latitude,
  2. double pixelDiff
)

Implementation

double latitudeDiffPerPixel(double latitude, double pixelDiff) {
  if (pixelDiff <= 10) {
    // fast algorithm for small pixel differences
    const double pi180 = pi / 180;
    return (pixelDiff * (360 / _mapSize) * cos(latitude * pi180)).abs();
  }
  String key = "${_mapSize}_${latitude.round()}_$pixelDiff";
  double? result = _pixelDiffCache[key];
  if (result == null) {
    double pixelY = latitudeToPixelY(latitude);
    double latitude2 = pixelYToLatitude(pixelY - pixelDiff);
    result = (latitude2 - latitude).abs();
    _pixelDiffCache[key] = result;
  }
  return result;
}