latitudeDiffPerPixel method
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;
}