src/renderer/viz/expressions/aggregation/viewport/ViewportAggCalculator.js
function _runInDataframes (viewportExpressions, renderLayer, dataframes) {
    const processedFeaturesIDs = new Set(); // same feature can belong to multiple dataframes
    const viz = renderLayer.viz;

    const inViewportFeaturesIDs = new Set();
    dataframes.forEach(dataframe => {
        _runInDataframe(viz, viewportExpressions, dataframe, processedFeaturesIDs, inViewportFeaturesIDs);
    });
    return inViewportFeaturesIDs;
}
function _runInDataframes (viewportExpressions, renderLayer, dataframes) {
    const processedFeaturesIDs = new Set(); // same feature can belong to multiple dataframes
    const viz = renderLayer.viz;

    const inViewportFeaturesIDs = new Set();
    dataframes.forEach(dataframe => {
        _runInDataframe(viz, viewportExpressions, dataframe, processedFeaturesIDs, inViewportFeaturesIDs);
    });
    return inViewportFeaturesIDs;
}
function _runInDataframes ( viewportExpressions , renderLayer , dataframes ) { const processedFeaturesIDs = new Set ( ) ; // same feature can belong to multiple dataframes const viz = renderLayer . viz ; const inViewportFeaturesIDs = new Set ( ) ; dataframes . forEach ( dataframe => { _runInDataframe ( viz , viewportExpressions , dataframe , processedFeaturesIDs , inViewportFeaturesIDs ) ; } ) ; return inViewportFeaturesIDs ; }
Run all viewport aggregations in the dataframes, and returns a list of featureIDs inside the
viewport & not filtered out. That's a list of the features effectively included in the viewportExpressions run
Run all viewport aggregations in the dataframes and returns a list of featureIDs inside the viewport & not filtered out . That s a list of the features effectively included in the viewportExpressions run