Source: EnlaceABackend.js

/**
 * Clase para crear desacoplamiento entre backend y cliente
 */
class EnlaceABackend {
    constructor () {

    }

    /**
     * 
     * @param {Array} poligono Array con los vértices del polígono 
     * @param {function} callback Función callback para devolver el resultado 
     */
    getEstimacionPoblacion_WorldPop(poligono, callback) {
        eel.getEstimacionPoblacion_WorlPop(poligono)().then((resultado) => {
            if (!resultado.total_population) {
                callback(null, 'Error obteniendo datos');
            } else {
                callback(resultado, null);
            }
            
        }, (rejected) => {
            callback(null, rejected);
        })
    }

    /**
     * Contacta al backend para extraer la información de bases
     * @param {function} callback 
     */
    getBases_DB(callback) {
        eel.getDatosDeBases()().then((data) => {
            if (data.Error) {
                callback(data.Error, null);
                return;
            }

            if (!data.Data || data.Data.length === 0) {
                callback('No entries', null);
                return;
            }

            let bases = [];

            data.Data.forEach(row => {
                bases.push({
                    Lat: row[0],
                    Lng: row[1],
                    Descripcion: row[2]
                });
            });

            callback(null, bases);

        }, (rejected) => {
            callback(rejected, null);
        });
    }


    /**
     * Obtener isocrona en la localización indicada con extensión
     * del tiempo proporcionado
     * @param {number} lat Latitud de la posición
     * @param {number} lng Longitud de la posicióln
     * @param {number} tiempo Tiempo de la isócrona
     * @param {function} callback (err, res)
     */
    getIsocrona(lat, lng, tiempo, callback) {
        eel.obtenerGeoJson(lng, lat, tiempo)().then((resultado) => {
            if (!resultado.type === 'FeatureCollection') {
                callback(null, resultado);
                return;
            }
            callback(resultado , null);
        }, (rejected) => {
            callback(null, rejected)
        })
    }

}