LatLon topLeft = mv.getLatLon(0, 0);
LatLon botRight = mv.getLatLon(mv.getWidth(), mv.getHeight());
double x1 = tileSource.lonToTileX(topLeft.lon(), zoom);
double y1 = tileSource.latToTileY(topLeft.lat(), zoom);
double x2 = tileSource.lonToTileX(botRight.lon(), zoom);
double y2 = tileSource.latToTileY(botRight.lat(), zoom);
int screenPixels = mv.getWidth()*mv.getHeight();
double tilePixels = Math.abs((y2-y1)*(x2-x1)*tileSource.getTileSize()*tileSource.getTileSize());
if (screenPixels == 0 || tilePixels == 0) return 1;
return screenPixels/tilePixels;